꾸물꾸물 졔의 개발공부
[MySQL] 프로그래머스 - 입양 시각 구하기(2) (SET := 변수 선언) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/59413
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
💡사용자 정의 변수 선언
SET @변수명 = 변수값; 또는 SET @변수명 := 변수값;
(둘다 가능하지만, = 는 비교연산자와 헷갈릴 수 있기 때문에 대입연산자로 := 별도 제공)
문제
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
✔️코드
SET @hour := -1; #변수 선언
SELECT (@hour := @hour+1) AS HOUR,
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour)
FROM ANIMAL_OUTS
WHERE @hour < 23;
- 변수명과 초기값 설정 : @hour 의 초기값은 -1이다.
- SELECT (@hour := @hour+1) : @hour 값을 1씩 증가시키면서 전체 SELECT 문을 실행한다.
- 증가시킨 @hour 값에 포함하는 데이터의 갯수를 count 한다.
- WHERE @hour < 23 : @hour 값이 -1 ~ 22 일 때까지 계속 값이 +1 씩 증가한다. 그려면 HOUR은 0~23까지
'알고리즘 > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (할인가격 구하기, WHERE) (0) | 2023.05.30 |
---|---|
[MySQL] 프로그래머스 - 오프라인/온라인 판매 데이터 통합하기 (UNION) (0) | 2023.05.29 |
[MySQL] 프로그래머스 - 그룹별 조건에 맞는 식당 목록 출력하기 (GROUP BY, SubQuery) (0) | 2023.05.25 |
[MySQL] 프로그래머스 - 주문량이 많은 아이스크림들 조회하기 (JOIN, LIMIT) (0) | 2023.05.24 |
[MySQL] 프로그래머스 - 저자 별 카테고리 별 매출액 집계하기 (GROUP BY, SUM, JOIN) (0) | 2023.05.23 |