새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • TodayILearned
  • docker
  • Python
  • 개발일지
  • 내일배움단
  • Github
  • 코딩프로젝트
  • 국비지원
  • 자기주도학습
  • 코린이
  • 프로그래머스
  • 내일배움카드
  • AI트랙
  • Selenium 4
  • machine learning
  • portfolio
  • 내일배움캠프
  • 코딩
  • 스파르타코딩클럽
  • til

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

DevLog

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

2022. 9. 30. 22:48

입양 시각 구하기(1)

문제 설명

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.

NAMETYPENULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_OUTCOME VARCHAR(N) FALSE

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.

 

풀이

SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9 AND HOUR(DATETIME) <= 19
GROUP BY HOUR
ORDER BY HOUR

1. DATETIME 필드에서 필요한 내용은 시간에 대한 정보만이므로 HOUR 함수를 이용하여 시간 부분만 사용하도록 합니다. 

2. 이렇게 시간만 얻어낸 값은 HOUR라는 필드로 출력할 수 있게 준비합니다.

3. 이때 이렇게 가공한 DATETIME필드의 시간을 COUNT함수를 이용하여 시간마다 몇개의 데이터가 있는지 확인합니다.

4. WHERE문을 조건문 처럼 사용하여 위에서 만들어놓은 HOUR(DATETME)이 9보다 크거나 같고 19보다 작거나 같은 값을 얻습니다.

5. 이렇게 얻어놓은 데이터 묶음을 GROUP BY 문을 이용하여 그룹핑합니다. 이 내용이 없다면 한 가지 시간에 전체 경우의 수 총합이 나오게 되므로 꼭 해야 합니다.

6. 이렇게 그룹핑된 값을 정렬해주게 되면 원하는 결괏값을 얻을 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'DevLog' 카테고리의 다른 글

[프로그래머스] SQL 중성화 여부 파악하기  (0) 2022.10.01
[프로그래머스] SQL NULL 처리하기  (0) 2022.10.01
[프로그래머스] SQL DATETIME에서 DATE로 형 변환  (1) 2022.09.30
[프로그래머스] SQL 최댓값 구하기  (0) 2022.09.30
[생각] Session, JWT token 항상 jwt가 옳을까?  (1) 2022.09.20
    'DevLog' 카테고리의 다른 글
    • [프로그래머스] SQL 중성화 여부 파악하기
    • [프로그래머스] SQL NULL 처리하기
    • [프로그래머스] SQL DATETIME에서 DATE로 형 변환
    • [프로그래머스] SQL 최댓값 구하기
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바