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

2024. 2. 22. 18:46·프로그래밍/SQL

소요시간 :  19분
사용한 풀이법 : SET, 서브쿼리, GROUP BY


풀이 과정

1. 0-23시까지 모든 시간을 표시하기 위한 @hour 변수 선언
2. -1로 초기값을 준 뒤, +1을 해가며 hour이 23이 될 때 까지 진행
3. 서브쿼리에선 datetime의 시각이 hour와 동일한 경우에 그룹화 하여 카운트를 진행

 

작성 코드

set @hour := -1;
select (@hour := @hour+1) as HOUR,
ifnull((select count(animal_id)
        from animal_outs
        where hour(datetime) = @hour
        group by hour),0) as COUNT
from animal_outs
where @hour < 23
order by 1

 

피드백

처음에는 그냥 그룹화해서 카운트하면 되네~~ 하고 했는데 무참히 실패!!
SQL 무식이는 도저히 방법이 안떠올라서 검색을 해봤고 거기서 SET함수를 알게됨.
여차저차 풀어봤는데 서브쿼리 내부에서 hour와 datetime이 일치하지 않는경우에는 아예 쿼리를 안돌려서 값이 텅텅 비어버리는 문제가 발생
이정도는 해결 가능하지~~하고 ifnull()처리 했더니 성공!!

아직 틀리는 문제가 더 많기는 하지만 점점 풀이법과 함수들에 익숙해져나가는 쾌감을 느끼는 중ㅎㅎ
저작자표시 (새창열림)

'프로그래밍 > SQL' 카테고리의 다른 글

[SQL] 관계형 데이터 베이스  (0) 2024.04.24
[SQL] 용어 정리 (Table, Colum, Row)  (0) 2024.04.08
[프로그래머스] 서울에 위치한 식당 목록 출력하기  (0) 2024.02.22
[프로그래머스] 과일로 만든 아이스크림 고르기  (0) 2024.02.21
[프로그래머스] 오프라인/온라인 판매 데이터 통합하기  (0) 2024.02.21
'프로그래밍/SQL' 카테고리의 다른 글
  • [SQL] 관계형 데이터 베이스
  • [SQL] 용어 정리 (Table, Colum, Row)
  • [프로그래머스] 서울에 위치한 식당 목록 출력하기
  • [프로그래머스] 과일로 만든 아이스크림 고르기
70_0ewd
70_0ewd
내가 보려고 적는 나의 공부 기록
  • 70_0ewd
    Seung's Learning Record
    70_0ewd
  • 전체
    오늘
    어제
    • 분류 전체보기 (92)
      • DE (2)
      • Dev Tool (29)
        • Flutter (5)
        • AWS (8)
        • Django (7)
        • Spring boot (9)
      • 프로그래밍 (30)
        • C++ (0)
        • JAVA (6)
        • SQL (13)
        • Python (8)
        • WEB (3)
      • 알고리즘 (26)
      • CS (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SQL
    stl
    DFS
    Java
    delete
    C++
    백트래킹
    Python
    스택
    group by
    웹 스크래핑
    DP
    select
    깊이 우선 탐색
    파이썬
    Flutter
    플러터
    너비 우선 탐색
    프로그래머스
    큐
    공룡책
    자바
    JOIN
    AWS
    heap
    django
    백준
    Queue
    데브코스
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
70_0ewd
[프로그래머스] 입양 시각 구하기(2)
상단으로

티스토리툴바