SQL

프로그래머스 SQL 고득점 KIT(GROUP BY)

Bryan Lee 2022. 4. 17. 20:44

프로그래머스 GROUP BY 4문제를 한 포스팅에 정리합니다.

프로그래머스 (programmers.co.kr)

 

1. 고양이와 개는 몇 마리 있을까

- GROUP BY로 ANIMAL_TYPE을 묶어주고, ORDER BY로 정렬합니다.

SELECT ANIMAL_TYPE, COUNT(*) as count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE;

 

2. 동명 동물 수 찾기

- GROUP BY로 NAME을 묶어주고, HAVING COUNT(NAME)>=2로 조건을 추가합니다. 

SELECT NAME, COUNT(NAME) AS COUNT FROM ANIMAL_INS GROUP BY NAME HAVING COUNT(NAME) >= 2  ORDER BY NAME;

 

3. 입양 시각 구하기(1) 

- HOUR(DATETIME) AS HOUR로 HOUR를 나타냅니다

-. COUNT(HOUR(DATETIME)) AS COUNT로 COUNT를 나타냅니다. 

- GROUP BY HOUR(DATETIME)으로 묶어줍니다.

- HAVING HOUR >=9 AND HOUR <=19으로 조건을 추가합니다. 

SELECT HOUR(DATETIME) AS HOUR, COUNT(HOUR(DATETIME)) AS COUNT FROM ANIMAL_OUTS GROUP BY HOUR(DATETIME) HAVING HOUR >= 9 AND HOUR <=19 ORDER BY HOUR;

 

4. 입양 시각 구하기(2)

SET @hour := -1;

SELECT (@hour := @hour + 1) as HOUR,
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) as COUNT
FROM ANIMAL_OUTS
WHERE @hour < 23;