2024년 01월 16일

1. 문제

2. 나의 풀이

SELECT NAME, COUNT(NAME) AS 'COUNT' FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME
  1. 1행에서 ANIMAL_INS 테이블의 NAME을 조회하고 NAME을 카운트한다. 이 때 AS 키워드를 통해 원하는 컬럼명으로 바꿔서 데이터를 나타내도록 한다.
  2. 2행에서 이름이 없는 동물을 제외하기 위해 WHERE 조건문과 IS NOT NULL을 함께 사용하여 이름이 없는 동물을 제외시킨다.
  3. 3행에서 GROUP BY를 통해 NAME 컬럼의 데이터를 그루핑한다.
  4. 4행에서 GROUP BY를 통해 그루핑한 집합에 특정 조건에 부합하는 데이터를 조회하기 위해 조건을 걸어준다. 집합에 특정 조건을 걸어주기 위해서는 HAVING 절을 사용해야하며 HAVING 절을 사용하여 카운트 된 이름이 1보다 큰 경우, 즉 2번 이상 쓰인 경우를 조건으로 그루핑 된 집합의 특정 데이터를 조회하였다.
  5. 5행에서 ORDER BY를 통해 오름차순 정렬해준다.

3. 후기