- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 정렬
- C++
- til
- 프로그래머스
- oauth
- 구글 로그인
- python
- 컴퓨터공학과
- sql
- 프로그래밍 입문
- 알고리즘
- 안드로이드
- 자료구조
- 로그인
- 파이썬
- Java
- firebase google
- android studio
- 비주얼 베이직
- 자바
- 배열
- 백준
- 안드로이드 스튜디오
- 공유대학
- Firebase
- 동적할당
- C언어
- 코딩테스트
- 연결리스트
Archives
코딩하는 해달이
[level 1 SQL] 입양 시각 구하기(2) 본문
문제 설명
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
문제 이해
먼저 시간과 입양 건수를 속성으로 가진 가상 테이블을 생성해야하고, COUNT함수를 이용해서 입양 건수를 세야겠다.그 후에 가상 테이블과 ANIMAL_OUTS 테이블의 DATETIME 속성을 LEFT JOIN해서 GROUP BY로 묶어주면 될거같다.
풀이코드
WITH RECURSIVE time_range AS (
SELECT 0 AS HOUR
UNION ALL
SELECT HOUR + 1 FROM time_range WHERE HOUR < 23
)
SELECT
time_range.HOUR,
COUNT(ANIMAL_OUTS.DATETIME) AS COUNT
FROM
time_range
LEFT JOIN
ANIMAL_OUTS ON time_range.HOUR = HOUR(ANIMAL_OUTS.DATETIME)
GROUP BY
time_range.HOUR
링크
https://school.programmers.co.kr/learn/courses/30/lessons/59413
반응형
'개인 공부 > 프로그래머스' 카테고리의 다른 글
[level 1 Python] 콜라 문제 (0) | 2024.09.05 |
---|---|
[level 1 Kotlin] 카드뭉치 (0) | 2024.08.27 |
[Java/Kotlin] Lv1. 랜덤 닉네임 생성 (0) | 2024.08.06 |
[level 2 Java] N개의 최소공배수 (0) | 2023.03.09 |
[level 1 C++] 숫자 문자열과 영단어 (1) | 2022.08.22 |
Comments