문제
https://school.programmers.co.kr/learn/courses/30/lessons/59413
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해석
- 입양시각 별로 그루핑을 해주는 것을 group by 를 활용
- group by 를 hour 별로 묶어주고, id를 count 해주면 되겠지?
select date_format(datetime, "%H") as hour, count(animal_id) as count
from animal_outs
group by date_format(datetime, "%H")
order by hour
그러나 위와 같이 푸는 것은 아예 임의의 시각에 입양 온 동물이 없다면, column을 만들어 줄 수가 없다.
따라서, SET 이라는 새로운 키워드를 배운다.
정답
set @hour = -1;
select (@hour := @hour + 1) as hour,
(
select count(animal_id)
from animal_outs
where @hour = hour(datetime)
) as count
from animal_outs
where @hour < 23
@hour 변수를 할당하고, 해당 변수를 활용해 반복문을 도는 것처럼 활용한다.
해도해도 알아야 할 것들이 계속 나옴,,ㅎ
끗!
'알고리즘 공부 > sql' 카테고리의 다른 글
[프로그래머스] MySQL - 식품 분류별 가장 비싼 식품의 정보 조회하기 (0) | 2024.02.23 |
---|---|
[프로그래머스] MySQL - 조건에 맞는 사용자 정보 조회하기 (0) | 2024.02.22 |
[프로그래머스] MySQL - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2024.02.22 |
[프로그래머스] MySQL - 자동차 평균 대여 기간 구하기 (0) | 2024.02.20 |
[프로그래머스] MySQL - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2024.02.20 |