코딩스터디

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;

설명: 

  1. SELECT NAME, COUNT(*) AS COUNT
    • NAME별로 몇 마리의 동물이 있는지 계산합니다.
    • COUNT(*) AS COUNT를 사용하여 각 이름의 출현 횟수를 COUNT 열로 출력합니다.
  2. FROM ANIMAL_INS
    • ANIMAL_INS 테이블에서 데이터를 가져옵니다.
  3. WHERE NAME IS NOT NULL
    • NAME이 NULL이 아닌 경우만 포함합니다.
    • NULL 값이 있는 경우 GROUP BY에서 하나의 그룹으로 처리될 수 있으므로 이를 배제합니다.
  4. GROUP BY NAME
    • NAME을 기준으로 그룹화하여 각 이름별 출현 횟수를 계산합니다.
  5. HAVING COUNT(*) >= 2
    • 같은 이름을 가진 동물이 2마리 이상인 경우만 필터링하여 결과에 포함합니다.
  6. 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;

설명:

  1. SELECT ANIMAL_TYPE, COUNT(*) AS count
    • ANIMAL_TYPE을 기준으로 그룹화하고, 각 동물 유형별 개수를 COUNT(*)로 계산합니다.
  2. FROM ANIMAL_INS
    • ANIMAL_INS 테이블에서 데이터를 가져옵니다.
  3. WHERE ANIMAL_TYPE IN ('Cat', 'Dog')
    • Cat과 Dog만 조회하도록 필터링합니다.
  4. GROUP BY ANIMAL_TYPE
    • ANIMAL_TYPE을 기준으로 그룹화하여 각 그룹별 개수를 계산합니다.
  5. ORDER BY ANIMAL_TYPE
    • Cat을 먼저 출력해야 하므로, 기본적으로 ORDER BY ANIMAL_TYPE을 사용하여 알파벳 순서로 정렬합니다.

 

728x90