반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- C++
- 고득점Kit
- 카카오
- Doitvue.js입문
- dp
- 동적계획법
- OS
- sql
- python
- 파이썬
- Level1
- 코테연습
- react
- Level2
- CS
- Level3
- LeetCode
- 백준
- 프로그래머스
- 웹프로그래밍
- typescript
- VUE
- javascript
- 배열
- 자바스크립트
- Medium
- 리액트
- web
- 리트코드
- 프로그래밍
Archives
- Today
- Total
[프로그래머스] 입양 시각 구하기(2) - MySQL 본문
반응형
입양 시각 구하기(2)
문제
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
풀이
WITH RECURSIVE HOURS AS (
SELECT 0 AS HOUR
UNION ALL
SELECT HOUR + 1 FROM HOURS
WHERE HOUR < 23
)
SELECT HOUR, IFNULL(TMP.COUNT, 0) AS COUNT
FROM HOURS
LEFT OUTER JOIN (
SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
) TMP
USING (HOUR)
재귀 테이블
재귀하면서 0부터 23을 포함하는 테이블을 만든다.
Left outer join
left outer join의 뜻은 왼쪽 테이블은 조건에 부합하지 않아도 모든 컬럼을 포함해야된다는 뜻이다.
IFNULL(TMP.COUNT, 0)
조인한 테이블의 COUNT 컬럼이 NULL일 경우 0으로 넣는다. (재귀 테이블에 없는 경우)
반응형
'코테 문제 풀이 > SQL' 카테고리의 다른 글
[프로그래머스] 이름이 있는 동물의 아이디 - MySQL (0) | 2022.05.06 |
---|---|
[프로그래머스] 이름이 없는 동물의 아이디 - MySQL (0) | 2022.05.06 |
[프로그래머스] 입양 시각 구하기(1) - MySQL (0) | 2022.05.06 |
[프로그래머스] 동명 동물 수 찾기 - MySQL (0) | 2022.05.06 |
[프로그래머스] 고양이와 개는 몇 마리 있을까 - MySQL (0) | 2022.05.06 |
Comments