-
프로그래머스 - 입양 시각 구하기(2)_set @SQL 문제 2024. 1. 9. 16:00
입양 시각 구하기 (2)
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다-- 코드를 입력하세요 # 변수를 지정 # HOUR는 1씩 증가해야 하므로 -1로 설정해서 0시도 나오게 한다. SET @HOUR := -1; SELECT (@HOUR := @HOUR +1) AS HOUR, ( SELECT COUNT(HOUR(DATETIME)) FROM ANIMAL_OUTS WHERE #우리가 만든 변수가 DATETIME이라는 조건 HOUR(DATETIME) = @HOUR ) AS COUNT FROM ANIMAL_OUTS WHERE #@HOUR가 22가 되면 +1 되서 23시까지 출력 @HOUR <23
이 문제를 GROUP BY로 풀면 실제로 입양된 시각인 7시 부터 나오게 된다.
문제에서는 24시간을 보기 위하여 변수를 만들어야 한다.
새로운 변수를 만드는 코드는
SET @변수명 := 값
형태로 지정한다.
SET으로 변수를 만들때에는 =과 := 둘다 사용가능하지만
SELECT 절에서 변술를 만들 때에는 무조건 := 써줘야 변수로 인식한다.
SELECT @변수명 := 대입값;
그 이유는 :=는 =인 대입 연산자와 헷갈리기 때문이라고 한다.
초기 변수 @HOUR를 -1로 설정하여 0시도 추출하도록 한다.
쿼리가 돌아가면서 +1씩 증가하기 때문에 -1을 초기값으로 지정하였다.
서브쿼리를 만들어 @HOUR와 DATEIME를 이어주고
COUNT를 통해 입양건 수를 추출한다.
'SQL 문제' 카테고리의 다른 글
leeCode - 1661. Average Time of Process per Machine (1) 2024.02.27 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) 2024.01.29 프로그래머스 - 조건에 부합하는 중고거래 댓글 조회하기 (0) 2024.01.09 프로그래머스 - 오프라인/온라인 판매 데이터 통합하기 (0) 2024.01.09 프로그래머스 - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) 2024.01.08