seoyoung.dev

[프로그래머스]GROUP BY_입양시각 구하기(1),(2) 본문

TIL/Database

[프로그래머스]GROUP BY_입양시각 구하기(1),(2)

seo-0 2021. 7. 20. 22:56

입양시각 구하기(1)

- DATETIME 에서 YEAR/MONTH/DAY/HOUR/MINUTE/SECOND 함수를 통해

날짜 데이터의 일부만 추출해 사용할 수 있다.

SELECT hour(datetime) as hour, count(datetime) from animal_outs
group by hour 
order by hour
having hour >= 9 and hour <=19

입양시각 구하기(2)

..? 갑자기 어려워진...+ 사용자 정의 변수 사용

set @hour_ := -1;

select
(@hour_ := @hour_ +1)as HOUR,
(select count(*) from animal_outs where hour(datetime) = @hour_) as COUNT
from animal_outs
where @hour_ < 23;

#-----count 가 0값인 경우를 출력 안한다.
# SELECT hour(datetime) as hour, count(datetime) 
# from animal_outs 
# group by hour
# having hour >= 0 and hour <= 23
# order by hour

 

< 사용자 정의 변수 >

- "set@변수명 := 변수값(초기값)" 형태로 선언

- 별도 타입 지정하지 않고, 저장하는 값에 의해 타입이 정해진다. 

- " select (@hour_ := @hour_ +1) as HOUR " : 매 레코드마다 hour_ + 1 해준다.

- 하나의 connection 상에서는 공유된다.

'TIL > Database' 카테고리의 다른 글

[프로그래머스]Join  (0) 2021.08.05