본문 바로가기
  • 실행력이 모든걸 결정한다
DB/SQL Problems

[SQL-GROUP BY, 난이도 중] 입양 시각 구하기(1)

by 김코더 김주역 2020. 12. 7.
반응형

 

해설 : DATETIME을 보면 "0000-00-00 00:00:00" 형식을 지키고 있다. 여기서 HOUR 함수를 이용하면 쉽게 "시" 만 추출할 수 있다. 그리고 테이블의 레코드 수는 COUNT 함수로 구할 수 있다.

시간대 별 입양 건 수를 구하는 것이 목적이므로, 그룹핑은 시간대가 기준이 되어야 한다.

그리고 이 테이블에서 시간대는 9시부터 19시로 딱 맞아 떨어지지 않기 때문에 HOUR이 9~19 인 레코드만 나오도록 조건 지정을 해줘야 한다. 마지막으로, 시간대 순으로 정렬해주면 문제에서 원하는 결과가 나온다.

 

SELECT HOUR(DATETIME) HOUR, COUNT(*) COUNT 
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN 9 AND 19
GROUP BY HOUR(DATETIME) 
ORDER BY HOUR(DATETIME);

 

 

 

 

* SELECT문에서 HOUR(DATETIME)를 HOUR로, COUNT(*) COUNT로 조회할 수 있게 별명을 지정했다.

 

SELECT : 조회하라

 

HOUR(DATETIME) HOUR, COUNT(*) COUNT : DATETIME 필드값의 HOUR 부분과 레코드의 개수를 (단, 조회 시 필드명이 각각 HOUR, COUNT로 보이도록 함)

 

FROM ANIMAL_OUTS : ANIMAL_OUTS 테이블에서

 

WHERE HOUR(DATETIME) BETWEEN 9 AND 19 : DATETIME 필드값의 HOUR 부분이 9이상 19이하일 때


GROUP BY HOUR(DATETIME) : DATETIME 필드값의 HOUR 부분을 기준으로 그룹을 지어


ORDER BY HOUR(DATETIME) : DATETIME 필드값의 HOUR 부분을 기준으로 오름차순 하여

반응형

댓글