728x90
1. 문제
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
2. 풀이
일반 group by를 하면 데이터가 존재하는 시간대만 묶어서 나오기 때문에 다른 방식을 써야한다.
나는 사용자변수를 사용했다.
먼저 -1로 변수를 만들고 1을 더해가면서 현재의 변수값과 hour이 같은 동물 수를 select했다.
이걸 변수가 23일때까지 반복한다.
SET @VAR := -1;
SELECT (@VAR := @VAR+1) AS HOUR, (SELECT COUNT(ANIMAL_ID)
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME)=@VAR) AS COUNT
FROM ANIMAL_OUTS
WHERE @VAR<23;
3. 결과
'코딩테스트 > SQL' 카테고리의 다른 글
[SQL] 취소되지 않은 진료예약 조회하기 - MySQL (0) | 2023.02.27 |
---|---|
[SQL] 오프라인/온라인 판매 데이터 통합하기 - MySQL (0) | 2022.10.14 |
[SQL] DATETIME에서 DATE로 형 변환 - MYSQL (0) | 2022.05.06 |
[SQL] 오랜 기간 보호한 동물(2) - MYSQL (0) | 2022.05.06 |
[SQL] 중성화 여부 파악하기 - MYSQL (0) | 2022.05.05 |
댓글