본문 바로가기
SEO's Study/프로페셔널한 이야기

프로그래머스 코딩테스트 :: 입양 시각 구하기2 (MySQL)

by 신SEO세오 2020. 9. 19.
반응형

[접속 사이트] 프로그래머스 programmers.co.kr

[문제] ANIMAL_OUTS 테이블은 동물 보호소에서 입양보낸 동물의 정보를 담은 테이블이다.

          0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성하시오. 

          단, 결과는 시간대 순으로 정렬해야합니다. 

 

 

[나의 풀이]

언뜻보면 입양 시각 구하기1과 같이 시간대 별 입양 건수를 count하는 일이지만, 테이블 내 없는 시각이 존재했다.

입양 시각만을 점검해보면 0시~6시, 20~23시 데이터가 없다.. 고로 없는 시간을 생성해줘야한다 ㅠㅠ 

 

 

 

없는 시간을 생성하기 위해 별도의 로컬변수를 선언해준다. 나는 @TIME으로 로컬변수를 설정하겠다.

그리고 0~23시 데이터 추출을 위해  '@TIME := @TIME+1' 식을 사용할 예정이니 0시데이터 추가를 위해 @TIME 값은 -1로 지정함

SET @TIME := -1; <- 변수 선언 시, 세미콜론(;)으로 종료하지 않으면 에러가 발생함

 

SET @TIME := -1; 
SELECT (@TIME := @TIME+1) as TIME, 
(SELECT count(*) from ANIMAL_OUTS 
 WHERE HOUR(DATETIME) = @TIME) as OUT_COUNT
from ANIMAL_OUTS
WHERE @TIME < 23

 

[실행 결과]

 

 

반응형

댓글