728x90
문제
풀이
📌 #1 SELECT DATE_FORMAT(DATETIME, '%H') AS HOUR, COUNT(ANIMAL_ID) AS COUNT
'%H' : 24시간 형식으로 표시
COUNT(ANIMAL_ID) : ANIMAL_ID의 개수를 셈.
이전 다른 풀이 참고( DATE_FORMAT으로 형식 ) : https://sesam-dev.tistory.com/55
📌#2 FROM ANIMAL_OUTS
ANIMAL_OUTS 테이블에서
📌#3 WHERE DATE_FORMAT(DATETIME, '%H') BETWEEN 09 AND 19
DATE_FORMAT(DATETIME, '%H') : DATETIME를 24시간 형식으로 표기
BETWEEN 09 AND 19 : DATETIME의 시간은 09에서 19사이
📌#4 GROUP BY HOUR
HOUR 그룹으로 묶기
#1번에서 HOUR별 개수를 세기 위해서
📌#5 ORDER BY HOUR;
HOUR기준으로 정렬
정답
SELECT DATE_FORMAT(DATETIME, '%H') AS HOUR, COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_OUTS
WHERE DATE_FORMAT(DATETIME, '%H') BETWEEN 09 AND 19
GROUP BY HOUR
ORDER BY HOUR;
오답이유(잘못된 풀이)
이유1
DATE_FORMAT을 잘못 사용했다. 24시간 표시형식은 대문자 H사용..
소문자 h는 12시간 표시 형식이다.
이유2
별칭 HOUR은 WHERE절에서 쓸 수 없다.
GROUP BY, ORDER BY에 사용할 수 있다.
SELECT DATE_FORMAT(DATETIME, '%h') AS HOUR, COUNT(ANIMAL_ID) AS COUNT // 24시간을 표시하는것은 대문자 H를 사용해야 한다..
FROM ANIMAL_OUTS
WHERE HOUR >= 9 AND HOUR <= 19 // WHERE에서 위에서 선언해준 별칭을 사용할 수 없다..
GROUP BY HOUR
ORDER BY HOUR;
'알고리즘 > SQL 풀이' 카테고리의 다른 글
[MySQL] 상품 별 오프라인 매출 구하기 (0) | 2023.10.18 |
---|---|
[MySQL] 진료과별 총 예약 횟수 출력하기 (0) | 2023.10.17 |
[MySQL] 카테고리 별 상품 개수 구하기 (0) | 2023.10.15 |
[MySQL] 고양이와 개는 몇 마리 있을까 (0) | 2023.10.13 |
[MySQL] 중성화 여부 파악하기 (0) | 2023.10.12 |