- 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++
- 구글 로그인
- firebase google
- 알고리즘
- 컴퓨터공학과
- 연결리스트
- C언어
- 프로그래밍 입문
- 자료구조
- 배열
- 백준
- Java
- 자바
- Firebase
- sql
- til
- 파이썬
- 동적할당
- 안드로이드 스튜디오
- 공유대학
- oauth
- python
- 코딩테스트
- android studio
- 로그인
- 프로그래머스
- 안드로이드
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