프로그래머스 SQL 고득점 KIT 입양시각 구하기(2)

프로그래머스 SQL GROUP BY입양시각 구하기(2)를 풀어봅니다.

GROUP BY 로 구분되어 있지만, GROUP BY로 풀지 않았습니다.


입양시각 구하기(2)

  • 0시 부터 23시까지 전부 출력해야합니다.
  • DB 안에 데이터가 없는 시간도 만들어서 출력해야 합니다.
    • 변수를 이용합니다. set @hour = -1
  • COUNThour에 맞는 개수를 가져와야합니다.
    • 서브쿼리를 이용합니다.
  • WHERE구가 제일 먼저 계산되어지므로, 24 미만 인경우에만 검색하게 합니다.
  • set을 하는 경우에만 = 로 대입할 수 있습니다.
    • 그 외의 경우에는 := 로 대입해주어야 합니다.
1
2
3
4
5
6
7
set @hour = -1;

SELECT 
    (@hour) AS 'HOUR',
    (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) AS 'COUNT'
FROM ANIMAL_OUTS WHERE (@hour := @hour + 1) < 24;

  • group by 로 해결한 솔루션을 찾아보았지만, 굉장히 지저분합니다.
  • 의도한 풀이가 맞는지 의심이 갑니다.

참고 링크

  • https://www.crocus.co.kr/1591
  • https://chanhuiseok.github.io/posts/db-6/