코딩스터디
SQL : 프로그래머스 GROUP BY 동명 동물 수 찾기, 고양이와 개는 몇마리 있을까?
열쩡왔쩡
2025. 3. 3. 17:43
# 동명 동물 수 찾기
SELECT NAME, COUNT(*) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(*) >= 2
ORDER BY 1;
설명:
- SELECT NAME, COUNT(*) AS COUNT
- NAME별로 몇 마리의 동물이 있는지 계산합니다.
- COUNT(*) AS COUNT를 사용하여 각 이름의 출현 횟수를 COUNT 열로 출력합니다.
- FROM ANIMAL_INS
- ANIMAL_INS 테이블에서 데이터를 가져옵니다.
- WHERE NAME IS NOT NULL
- NAME이 NULL이 아닌 경우만 포함합니다.
- NULL 값이 있는 경우 GROUP BY에서 하나의 그룹으로 처리될 수 있으므로 이를 배제합니다.
- GROUP BY NAME
- NAME을 기준으로 그룹화하여 각 이름별 출현 횟수를 계산합니다.
- HAVING COUNT(*) >= 2
- 같은 이름을 가진 동물이 2마리 이상인 경우만 필터링하여 결과에 포함합니다.
- ORDER BY 1
- ORDER BY NAME과 동일한 의미이며, 알파벳 순서로 정렬합니다.
#고양이와 개는 몇마리 있을까?
SELECT ANIMAL_TYPE, COUNT(*) AS count
FROM ANIMAL_INS WHERE ANIMAL_TYPE IN ('Cat', 'Dog')
GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE;
설명:
- SELECT ANIMAL_TYPE, COUNT(*) AS count
- ANIMAL_TYPE을 기준으로 그룹화하고, 각 동물 유형별 개수를 COUNT(*)로 계산합니다.
- FROM ANIMAL_INS
- ANIMAL_INS 테이블에서 데이터를 가져옵니다.
- WHERE ANIMAL_TYPE IN ('Cat', 'Dog')
- Cat과 Dog만 조회하도록 필터링합니다.
- GROUP BY ANIMAL_TYPE
- ANIMAL_TYPE을 기준으로 그룹화하여 각 그룹별 개수를 계산합니다.
- ORDER BY ANIMAL_TYPE
- Cat을 먼저 출력해야 하므로, 기본적으로 ORDER BY ANIMAL_TYPE을 사용하여 알파벳 순서로 정렬합니다.
728x90