programing

날짜별 SQL 그룹(시간)

elecom 2023. 7. 2. 19:02
반응형

날짜별 SQL 그룹(시간)

날짜 열이 있는 테이블이 있습니다.특정 날짜에 대해 시간별로 그룹화하고 싶습니다.

다음과 같은 작업도 수행할 수 있습니다.

SELECT TRUNC(datecol, 'HH24') FROM mytable
GROUP BY TRUNC(datecol, 'HH24');
Select TO_CHAR(date,'HH24')
from table
where date = TO_DATE('20110224', 'YYYYMMDD')
group by TO_CHAR(date,'HH24')
select to_char(datecol,'HH24') thehour, count(*) count_in_hour
from tbl
where datecol = date '20110224'
group by to_char(datecol,'HH24')
order by thehour asc

또는 EXTRACT(날짜 시간)제안했을 수도 있지만, (empahsis mine):

시간, 분 또는 초를 요청한 경우 express는 데이터 유형의 표현식인 TIMESTAMP, TIMESTAMP WITH 시간대, TIMESTAMP WITH LOCAL 시간대 또는 Interval Day to Second로 평가해야 합니다. Oracle Database가 시간 필드가 없는 ANSI DATE 데이터 유형으로 취급하므로 날짜는 여기서 유효하지 않습니다.

따라서 결과는 약간 추악합니다.

  SELECT EXTRACT (HOUR FROM CAST (m.a_date AS TIMESTAMP)) AS hour_,
         COUNT (*) AS count_
    FROM MY_TABLE m
GROUP BY EXTRACT (HOUR FROM CAST (m.a_date AS TIMESTAMP));

언급URL : https://stackoverflow.com/questions/5111396/sql-group-by-date-hour

반응형