👀 문제
https://programmers.co.kr/learn/courses/30/lessons/59412
👊 첫 번째 도전
1. 설계
- DATETIME의 시를 출력하기위해 HOUR키워드를 사용한다.
- 시간대별로 갯수를 세므로 COUNT를 사용한다.
- 9시부터 19시까지이므로 조건절 WHERE에서 제한을 둔다.
- ORDER BY를 이용해 시간대 순으로 정렬한다.
- 출력문 조건에 맞게 AS를 사용한다.
2. 구현
SELECT HOUR(DATETIME) AS 'HOUR', COUNT(HOUR(DATETIME)) AS 'COUNT'
FROM ANIMAL_OUTS
WHERE 9<=HOUR(DATETIME) AND HOUR(DATETIME)<=19
ORDER BY HOUR(DATETIME);
3. 결과
실패
4. 문제점
ORDER BY가 아니라 GROUP BY를 사용해야한다.
👊 두 번째 도전
1. 설계
- GROUP BY를 이용한다.
2. 구현
SELECT HOUR(DATETIME) AS 'HOUR', COUNT(HOUR(DATETIME)) AS 'COUNT'
FROM ANIMAL_OUTS
WHERE 9<=HOUR(DATETIME) AND HOUR(DATETIME)<=19
GROUP BY HOUR(DATETIME);
3. 결과
🤟 성공 🤟
4. ORDER BY와 GROUP BY
- ORDER BY: 조회된 결과의 레코드들을 원하는 기준으로 정렬해 출력한다. 제일 마지막 줄에 위치하여 조회된 자료를 정리하는 느낌이다. ALIAS명도 사용 가능하다.
- GROUP BY: 그룹별 통계정보를 제공한다. 데이터베이스가 GROUP BY에 명시된 칼럼 순서대로 오름차순 정렬을 실시한다. ALIAS 명을 사용할 수 없고, WHERE절에 올 수 없다. HAVING절을 이용해 제한조건을 둔다.