WITH A AS(
SELECT
TO_CHAR(DATETIME, 'HH24') AS HOUR,
COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_OUTS
GROUP BY TO_CHAR(DATETIME, 'HH24')
ORDER BY HOUR ASC)
SELECT
CASE
WHEN HOUR = '09' THEN '9'
ELSE HOUR
END AS HOUR,
COUNT
FROM A
WHERE HOUR >= 9
;
<포인트 정리>
1. DATE 형에서 시간만 가져오기
SELECT TO_CHAR(DATE 열 , 'HH24:MI:SS')
이때! DATE형으로 10시 아래 시각들은 09,08 이런식으로 0이 붙는다.
이때, TO_NUMBER로 숫자형으로 바꿔준다면, DATE형은 아니지만 숫자형으로 변하고 앞에 0이 없어진다.
2. 특정 행의 숫자 바꾸기
CASE문 사용.
SELECT
CASE
WHEN HOUR = '09' THEN '9'
ELSE HOUR
END AS HOUR
이런식으로
<아래는 다른 분이 작성하신 코드. 위에 쓴 코드는 내껀데 틀렸다고 나온다.
아래는 맞고. 뭔 차인지 모르겠다. 아스키 코드 문제인가>
WITH A AS(
SELECT
TO_CHAR(DATETIME, 'HH24') AS HOUR,
COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_OUTS
GROUP BY TO_CHAR(DATETIME, 'HH24')
ORDER BY HOUR ASC)
SELECT TO_NUMBER(HOUR) AS HOUR, COUNT
FROM A
WHERE HOUR >= 9
;
3. 데이터 형
숫자형
날짜형
문자형
T/F
NULL 등등
여기서 숫자형, 날짜형, 문자형 이거 구분 주의하자.
숫자형은 말 그대로 숫자고
문자형은 말 그대로 문자형이다.
문자형 9와 숫자형 9는 다른 듯 하다.(체크)
4. 따옴표 주의
문자열에 따옴표를 사용할 때는 기본적으로 '~'이다.
이때, 숫자가 맨 앞에 올 때만 "~"인 듯 하다. (체크)
'DataEngineering' 카테고리의 다른 글
SQL 프로그래머스 문제 - 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2024.05.14 |
---|---|
SQL 프로그래머스 문제 - 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2024.05.14 |
SQL 프로그래머스 문제 - 가격대 별 상품 개수 구하기(중요!) (0) | 2024.05.14 |
SQL 프로그래머스 문제 - 진료과별 총 예약 횟수 출력하기 (0) | 2024.05.14 |
SQL 프로그래머스 문제 - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.05.14 |