레벨 2
GROUP BY
https://programmers.co.kr/learn/courses/30/parts/17044
이 문제는 09:00부터 19:59까지, 각 시간대 별로 입양이 몇건 발생했는지 조회하는 SQL문을 작성해야하고 시간대 순으로 정렬해야한다.
출력 예시는 다음과 같다.
DATETIME 컬럼을 사용해 풀면 되는데 테이블을 출력해보면 DATETIME은 "2014-06-28 13:40:00" 이 형식으로 되어있다. DATETIME을 시간으로 바꾸기 위해서는 HOUR 함수를 사용하면 된다.
SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT
COUNT 안 HOUR(DATETIME), DATETIME, * 모두 가능
09:00부터 19:59까지 출력하기 위해 WHERE 절을 적용한다.
(WHERE 절엔 AS HOUR 값이 안먹는다.
WHERE HOUR >= 9 AND HOUR <= 19 하면 오류)
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) <= 19
시간대별 갯수를 출력하기 위해 그룹함수를 사용한다.
(AS HOUR이 적용됨)
GROUP BY HOUR
시간대순으로 정렬하기 위해 ORDER BY를 사용한다.
(AS HOUR이 적용됨)
ORDER BY HOUR
SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) <= 19
GROUP BY HOUR
ORDER BY HOUR;
안녕하세요! sql 검색하다가 알고리즘 문제도 많이 푸신거 보고 댓글남깁니다.
질문할 것이 있어서요,
이 문제를 어떻게 해결할 수 있을까요?
뜬금없긴하지만.. 알고리즘 문제 푼것 보고 조언좀 구하고 싶어서 댓글 남깁니다.