https://school.programmers.co.kr/learn/courses/30/lessons/59041
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드
SELECT NAME, COUNT(*) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) > 1
ORDER BY NAME
쿼리 실행 순서
실행 순서 | SQL 절 | 설명 |
1️⃣ | FROM | ANIMAL_INS 테이블에서 데이터를 조회 |
2️⃣ | WHERE | NAME IS NOT NULL 조건을 만족하는 행만 필터링 |
3️⃣ | GROUP BY | NAME을 기준으로 그룹화 |
4️⃣ | HAVING | COUNT(NAME) > 1인 그룹만 선택 |
5️⃣ | SELECT | NAME, COUNT(*) AS COUNT 조회 |
6️⃣ | ORDER BY | NAME 기준으로 정렬 |
풀이
NAME 컬럼의 값이 NULL인 경우도 있었다. 따라서 그룹화 하기 전에 필터링이 필요했다. → WHERE NAME IS NOT NULL
ANIMAL의 NAME 컬럼에 따라 그룹화를 해야한다는 것을 파악했다. → GROUP BY NAME 사용
특정 NAME 값이 2번 이상 쓰인 NAME의 값만 출력해야한다. → HAVING COUNT(NAME) > 1 사용
이름 순으로 출력해야하니 당연히 ORDER BY NAME 사용도 해주었다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스 SQL] 식품분류별 가장 비싼 식품의 정보 조회하기 - 쿼리 실행 순서와 함께 보자 (0) | 2025.03.02 |
---|---|
[프로그래머스 SQL] 고양이와 개는 몇 마리 있을까 - 쿼리 실행 순서와 함께 보자 (0) | 2025.03.02 |
[프로그래머스 MySQL] 년, 월, 성별 별 상품 구매 회원 수 구하기 - 쿼리 실행 순서와 함께 보자 (0) | 2025.03.02 |
[프로그래머스 SQL] 입양 시각 구하기(1) - 쿼리 실행 순서와 함께 보자 (0) | 2025.03.02 |
[프로그래머스 SQL] CASE와 WHERE 차이점과 용도 (0) | 2025.03.02 |