프로그래머스 SQL 문제 중 GROUP BY 카테고리에 속한 1문제를 풀어 봤습니다.
이번에는 0~23시의 모든 HOUR를 출력하기 위해 [SET @변수명 = '값';]을 사용해서 풀어봤습니다.
확실히 UNION을 사용해 SELECT 쿼리를 결합할 때보다 쿼리문이 짧아졌습니다.
주요 사용 쿼리/함수 : [SET @변수명 = '값';] [@변수명 := '값';], GROUP BY, HOUR(시간)
변수 선언과 관련한 짤막한 이야기
|
입양 시각 구하기(2) 문제 풀이 2안
https://programmers.co.kr/learn/courses/30/lessons/59413
programmers.co.kr
- 프로그래머스 SQL 문제풀이 | |
-- 2(변수 사용) | |
-- 프로그래머스 > GROUP BY > 입양 시각 구하기(2) | |
-- 링크 : https://programmers.co.kr/learn/courses/30/lessons/59413 | |
-- 코드를 입력하세요 | |
SET @HOUR_LIST = -1; | |
SELECT | |
(@HOUR_LIST := @HOUR_LIST + 1) AS 'HOUR', | |
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR_LIST) AS 'COUNTS' | |
FROM ANIMAL_OUTS | |
WHERE @HOUR_LIST <23; | |
-- 1(UNION 사용) | |
-- 프로그래머스 > GROUP BY > 입양 시각 구하기(2) | |
-- 링크 : https://programmers.co.kr/learn/courses/30/lessons/59413 | |
-- 코드를 입력하세요 | |
SELECT H1.HOUR, IFNULL(OUTS.COUNT,0) AS COUNT | |
FROM ( | |
SELECT 0 AS HOUR | |
UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 | |
UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 | |
UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNION SELECT 12 | |
UNION SELECT 13 UNION SELECT 14 UNION SELECT 15 UNION SELECT 16 | |
UNION SELECT 17 UNION SELECT 18 UNION SELECT 19 UNION SELECT 20 | |
UNION SELECT 21 UNION SELECT 22 UNION SELECT 23 ) H1 | |
LEFT JOIN ( | |
SELECT HOUR(DATETIME) AS 'HOUR', COUNT(*) AS 'COUNT' | |
FROM ANIMAL_OUTS | |
GROUP BY HOUR) AS OUTS ON H1.HOUR = OUTS.HOUR |
혹시 UNION을 사용한 풀이가 궁금하신 분은 아래 링크에서 확인하시면 됩니다.
(쿼리문은 위에 통합으로 올라가 있습니다.)
https://mentha2.tistory.com/97
[프로그래머스, SQL 문제] 입양 시각 구하기(2) (GROUP BY) with MySQL
프로그래머스 SQL 문제 중 GROUP BY 카테고리에 속한 1문제를 풀어 봤습니다. SQL문제 중 LEVEL 4로 난이도가 높았습니다. UNION을 사용하니 확실히 쿼리가 길어지네요. 다음번에는 변수를 사용해서 풀어 보겠습니..
mentha2.tistory.com
1. TCPschool, 대입 연산자 설명, http://tcpschool.com/mysql/mysql_operator_assignment
2. 삼쾌한 IT 강의, MySQL 변수 종류 및 사용법, https://three-pleasure.tistory.com/256
[프로그래머스, SQL 문제] 이름에 EL이 들어가는 동물 찾기 with MySQL (0) | 2020.01.07 |
---|---|
[프로그래머스, SQL 문제] 루시와 엘라 찾기 (String, Date) with MySQL (1) | 2020.01.06 |
[프로그래머스, SQL 문제] 입양 시각 구하기(2) (GROUP BY) with MySQL (0) | 2020.01.04 |
[프로그래머스, SQL 문제] 입양 시각 구하기(1) (GROUP BY) with MySQL (0) | 2020.01.03 |
[프로그래머스, SQL 문제] SELECT 문제들 with MySQL (0) | 2020.01.01 |