코딩 테스트 연습/프로그래머스

[프로그래머스] 동명 동물 수 찾기(Oracle, Lv2)

ThinkFree 2022. 2. 24. 04:01

 

테이블 구조

 

문제 설명

- ANIMAL_INS 테이블의 동물 이름 2번 이상 쓰인 이름 해당 이름이 쓰인 횟수를 조회

- 이 때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회

  • 동물 이름 : 컬럼 NAME
  • 2번 이상 : 조건 WHERE 
  • 쓰인 횟수 : 갯수 조회 COUNT()
  • 이름이 없는 동물은 제외 : 필드 유무 확인 IS NOT NULL
  • 결과는 이름 순 : 정렬 ORDER BY

 

Solution

① 서브쿼리(4~7줄)

- SELECT문을 이용하여 ANIMAL_INS NAME갯수 COUNT()를 조회해준다.

- 이 때 그룹화 GROUP BY를 이용하면 동물의 이름별 갯수가 몇개인지 집계할 수 있다.

 

② 전체 쿼리(2~11줄)

- 서브쿼리에서 가져온 데이터 중 2번 이상 집계된 NAME 조회를 위해 조건절 WHERE을 추가해준다.

- 그리고 NAME이 없는 동물들은 제외해주기 위해 IS NOT NULL을 사용해준다.

- 마지막으로 ORDER BY를 사용하여 NAME순으로 정렬해준다.

 

 

출처

https://programmers.co.kr/learn/courses/30/lessons/59041

 

코딩테스트 연습 - 동명 동물 수 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr