[SQL] 프로그래머스 - 고양이와 개는 몇 마리 있을까

eve·2023년 1월 17일
0

SQL

목록 보기
3/3
post-thumbnail

문제

동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요.

풀이

✅ 난관 - (1)

컬럼명에 Cat, Dog가 들어가는 것이 아니라 row에서 처리해주어야 해서 조금 당황했다.
아래와 같이 SELECT문을 미완인 채로 자꾸 출력해서 그렇다.

SELECT COUNT(ANIMAL_TYPE)

SELECT문에서 ANIMAL_TYPE 컬럼과, COUNT로 집계한 값을 담아줄 컬럼을 분리하지 않으면
위와 같은 결과가 나타나게 된다.

✅ 난관 - (2)

SELECT문에서 구하고자 하는 컬럼을 적어 주었어도, GROUP BY에서 어떤 카테고리들을 집계할 지 한번 더 적어주어야 한다. GROUP BY로 풀어주어야 하는 문제라는 것을 알고 나서는 술술 풀리긴 했다.

예외처리에서도 한번 막혔다. 굳이 '고양이 먼저 출력'한다는 조건을 걸었으므로, ORDER BY도 꼼꼼하게 해주자.

SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE) AS 'count'
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE

💡 배운 점

1️⃣ WHERE 구에서는 COUNT 등의 집계 연산이 불가능하다.
2️⃣ AS는 SELECT에서만 활용 가능하다. ORDER BY에서도 가능하지만, 주로 SELECT에서.
3️⃣ GROUP BY 뒤에서는 함수나 조건문이 올 수 있다고 한다. -> 확인 필요!

profile
유저가 왜 그랬을까

0개의 댓글