반응형
250x250
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
- 자바스크립트
- 프래그먼트
- MySQL
- 몰입캠프후기
- 어은동맛집
- 우선순위큐
- 알고리즘
- node.js
- 몰입캠프
- computergraphics
- 백준
- 카이스트
- 궁동
- 타입스크립트
- nodeJS
- BFS
- 앱개발
- DP
- 후기
- 컴퓨터그래픽스
- 자바
- 대전맛집
- glfw
- 리사이클러뷰
- 안드로이드스튜디오
- html
- 프로그래머스
- 분리집합
- 카이스트맛집
- 위상정렬
Archives
- Today
- Total
소근소근
[프로그래머스 - 입양 시각 구하기(2)] MYSQL , GROUP BY , DATETIME 추출 본문
728x90
반응형
SMALL
단순히 GROUP BY만 해서 출력한다고 생각해서 틀렸던 문제이다.
주어진 DB에서는 시간이 7~19 만 있는데 이 문제에서는 0~23까지 모두 출력해야 한다.
즉, COUNT가 0 이어도 출력해야 하는 것이었다.
계속 고민하다 모르겠어서 풀이를 검색해봤다.
SET 으로 변수를 설정해서 증가시키면서 출력하면 되는 문제였다.
SET 변수 설정은 몰랐어서 ㅎㅎ...
SET @H := -1;
SELECT @H := @H + 1 AS HOUR , (SELECT COUNT(*)
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) = @H
) AS COUNT
FROM ANIMAL_OUTS
WHERE @H < 23
SELECT 문에서 증가시켜주고, WHERE에서 종료 조건을 달아준다.
0~23까지 증가시키면서 TABLE에서 시간이 일치하는 TUPLE을 카운트하면 된다.
그리고 DATETIME의 경우 HOUR(DATETIME)처럼 시간만 따로 추출이 가능하다.
마찬가지로, YEAR, MONTH, DAT, HOUR, MINUTE, SECOND모두 가능하다.
다른 방법으로는
1. 날짜 추출
DATE_FORMAT(DATETIME , '%Y-%m-%d') 를 하면 1997-09-02
2. 시간 추출
DATE_FORMAT(DATETIME , '%H:%i:%s') 를 하면 '14:32:55'
이런식으로 추출도 가능하다.
728x90
반응형
LIST
'Algorithm' 카테고리의 다른 글
[프로그래머스 - 중성화 여부 파악하기] MYSQL, STRING DATE (0) | 2022.02.06 |
---|---|
[프로그래머스 - NULL 처리하기] MYSQL, IS NULL (0) | 2022.02.06 |
[백준 BOJ 1074 silver1 - Z] 분할정복 C++ (0) | 2022.01.18 |
[백준 BOJ 10799 silver3 - 쇠막대기] 자료구조 , 스택 C++ (0) | 2022.01.16 |
[백준 BOJ 1966 silver3 - 프린터 큐] 자료구조 , 큐 C++ (0) | 2022.01.14 |