-- 코드를 입력하세요
with recursive timetable as (
select 0 as h
union all
select h + 1
from timetable
where h < 23
)
select h, count(HOUR(DATETIME)) as count
from timetable left outer join animal_outs on (h=HOUR(DATETIME))
GROUP BY h
ORDER BY h
# SELECT h, COUNT(HOUR(DATETIME)) AS 'COUNT'
# FROM TIME LEFT OUTER JOIN ANIMAL_OUTS
# ON (h=HOUR(DATETIME))
# GROUP BY h
대략 읽어보니 초기 설정값과 recursive할 쿼리를 union all로 엮는 쿼리같다.
with로 임시 테이블을 생성하고,
1 2 3 4 5 6 |
WITH recursive CTE as( #재귀쿼리 세팅 select 0 as HOUR #초기값 설정 union all #위 쿼리와 아래 쿼리의 값을 연산 select HOUR+1 from CTE #하나씩 불려 나감 where HOUR < 23 #반복을 멈추는 용도 ) Colored by Color Scripter |
cs |
위 임시 테이블을 토대로 LEFT JOIN할 테이블인
ANIMAL_OUTS 테이블을 불러와주었다.
그리고 SELECT로 CTE 테이블의 HOUR와 OUTS 테이블의 HOUR를 카운트해주면 끝!
https://programmers.co.kr/questions/16108
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
https://velog.io/@cyanred9/SQL-Recursive
[SQL] Recursive 표현으로 쿼리 만들기
프로그래머스의 입양 시각 구하기(2) 문제를 보게 되면서 고민에 빠지게 된다.0부터 24시까지의 hour 칼럼을 어떻게 만들지?계속 검색을 해본 결과, python처럼 for문을 써서 0부터 24까지 만드는 구문
velog.io
https://programmers.co.kr/learn/courses/30/lessons/59413
코딩테스트 연습 - 입양 시각 구하기(2)
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물
programmers.co.kr
'웹 프로그래밍 > SQL' 카테고리의 다른 글
데이터베이스 설정할 때 중복 체크하기 위해서 if exists 문구 넣어주기 (0) | 2021.09.24 |
---|---|
ERROR 2002 (HY000): socket '/tmp/mysql.sock' (2) 해결하려고 brew services start mysql 함 (3) | 2021.09.24 |
[sql] 우유와 요거트 모두 산 사람 찾기 with tmp를 이용해서 품 (0) | 2021.09.15 |
[sql] 해비유저 IN () (0) | 2021.09.15 |
[sql] 프로그래머스 마지막 string, date 풀기 (0) | 2021.09.15 |
[sql] 프로그래머스 이제 join을 공부하자 (0) | 2021.09.15 |
[sql] 프로그래머스 IFNULL(name, "No name") (0) | 2021.09.15 |
[sql] 프로그래머스 name = null (x) name is null (o) (0) | 2021.09.15 |