반응형
[접속 사이트] 프로그래머스 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
[실행 결과]
반응형
'SEO's Study > 프로페셔널한 이야기' 카테고리의 다른 글
프로그래머스 코딩테스트 :: 없어진 기록찾기(MySQL) (0) | 2020.09.20 |
---|---|
프로그래머스 코딩테스트 :: 이름이 없는 동물의 ID 구하기(MySQL) (0) | 2020.09.19 |
프로그래머스 코딩테스트 :: 입양 시각 구하기1(MySQL) (0) | 2020.09.18 |
프로그래머스 코딩테스트 :: 동명 동물 수 찾기 (0) | 2020.09.18 |
프로그래머스 코딩테스트 :: 고양이와 개는 몇 마리 있을까 (0) | 2020.09.18 |
댓글