[Programmers] 입양 시각 구하기(1)
정답
-- ANIMAL_OUTS: ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME
SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR BETWEEN 9 AND 19
ORDER BY HOUR;
✅ Point
- COUNT(*) 와 COUNT(HOUR(DATETIME)) 의 차이
- COUNT(*): NULL을 포함한 전체 행 수
- COUNT(HOUR(DATETIME)): NULL 값을 제외한 행 수
COUNT(HOUR)
처럼 SELECT 문에서 선언한 별칭은 SELECT 실행 시 선언 됨- 따라서 SELECT문 이전에 시행되거나 (), 동일한 SELECT문에선 별칭을 사용할 수 없음
- SQL의 논리적 실행 순서
1. FROM 2. JOIN 3. ON 4. WHERE 5. GROUP BY 6. HAVING 7. SELECT 8. ORDER BY 9. LIMIT
- 단, MySQL에선
GROUP BY
,HAVING
에서의 별칭 사용을 허용
- 단, MySQL에선