반응형
DATE_TRUNC란?
SQL에서 **DATE_TRUNC**는 날짜 또는 시간 데이터를 특정 시간 단위로 잘라내는(Truncate) 함수입니다. 주로 데이터의 날짜나 시간을 단순화하여 그룹화하거나, 특정 단위로 정렬 및 분석할 때 사용됩니다.
DATE_TRUNC의 기본 구조
DATE_TRUNC('단위', 날짜_컬럼)
주요 매개변수:
- 단위: 날짜 또는 시간을 자를 기준. 예를 들어, 연도, 월, 주, 일, 시간 등이 있음.
- 예시: 'year', 'month', 'week', 'day', 'hour', 'minute', 'second' 등.
- 날짜_컬럼: 잘라낼 대상 날짜 또는 시간 값.
반환 값:
- 입력된 날짜를 지정된 단위로 잘라낸 값.
지원되는 단위
(지원되는 단위는 데이터베이스 시스템에 따라 다를 수 있지만, 일반적으로 아래와 같은 단위가 자주 사용됨)
단위 설명 예시 (2024-11-24 15:45:30)
'year' | 연 단위로 잘라냄 | 2024-01-01 00:00:00 |
'month' | 월 단위로 잘라냄 | 2024-11-01 00:00:00 |
'week' | 주 단위로 잘라냄 | 2024-11-18 00:00:00 (월요일 시작) |
'day' | 일 단위로 잘라냄 | 2024-11-24 00:00:00 |
'hour' | 시간 단위로 잘라냄 | 2024-11-24 15:00:00 |
'minute' | 분 단위로 잘라냄 | 2024-11-24 15:45:00 |
'second' | 초 단위로 잘라냄 | 2024-11-24 15:45:30 |
'quarter' | 분기 단위로 잘라냄 | 2024-10-01 00:00:00 (4분기 시작) |
사용 예제
예제 테이블: 매출
판매ID 판매일시 매출액
1 | 2024-11-24 15:30:00 | 100 |
2 | 2024-11-24 18:45:00 | 200 |
3 | 2024-11-25 09:00:00 | 150 |
4 | 2024-12-01 10:15:00 | 300 |
1. 월 단위로 매출 집계
SELECT
DATE_TRUNC('month', 판매일시) AS 월별,
SUM(매출액) AS 총매출
FROM 매출
GROUP BY DATE_TRUNC('month', 판매일시)
ORDER BY 월별;
월별 총매출
2024-11-01 00:00:00 | 450 |
2024-12-01 00:00:00 | 300 |
2. 일 단위로 매출 집계
SELECT
DATE_TRUNC('day', 판매일시) AS 일별,
SUM(매출액) AS 총매출
FROM 매출
GROUP BY DATE_TRUNC('day', 판매일시)
ORDER BY 일별;
일별 총매출
2024-11-24 00:00:00 | 300 |
2024-11-25 00:00:00 | 150 |
2024-12-01 00:00:00 | 300 |
3. 시간 단위로 매출 집계
SELECT
DATE_TRUNC('hour', 판매일시) AS 시간별,
SUM(매출액) AS 총매출
FROM 매출
GROUP BY DATE_TRUNC('hour', 판매일시)
ORDER BY 시간별;
시간별 총매출
2024-11-24 15:00:00 | 100 |
2024-11-24 18:00:00 | 200 |
2024-11-25 09:00:00 | 150 |
2024-12-01 10:00:00 | 300 |
4. 주 단위로 매출 집계
SELECT
DATE_TRUNC('week', 판매일시) AS 주별,
SUM(매출액) AS 총매출
FROM 매출
GROUP BY DATE_TRUNC('week', 판매일시)
ORDER BY 주별;
주별 총매출
2024-11-18 00:00:00 | 450 |
2024-11-25 00:00:00 | 150 |
2024-12-02 00:00:00 | 300 |
DATE_TRUNC의 주요 활용 사례
- 시간 단위 그룹화
- 시간별/일별/월별 데이터를 집계하거나 정렬할 때.
- 데이터 단순화
- 분석 시 날짜나 시간을 단순화하여 트렌드를 파악.
- 비교 분석
- 특정 기간(예: 월별, 분기별, 주별) 간의 변화량을 비교.
- 차트 생성
- 데이터 시각화를 위해 날짜를 정규화.
DATE_TRUNC의 주의점
- 데이터베이스별 지원 여부:
- PostgreSQL, Snowflake, Redshift 등에서 기본 지원.
- MySQL에서는 DATE_FORMAT이나 다른 함수로 대체 가능.
- 정확도:
- 시간 단위를 잘못 지정하면 예상치 못한 결과가 나올 수 있음.
요약
- DATE_TRUNC는 날짜/시간 데이터를 특정 단위로 자르는 데 유용.
- 복잡한 시간 데이터를 단순화하거나 분석하기 위한 필수 도구.
- 다양한 시간 단위를 활용하여 데이터 집계, 정렬, 비교 작업을 간소화할 수 있음.
실제 사용 시 데이터베이스의 지원 여부를 확인하고, 비슷한 대체 함수와 함께 활용하세요! 🚀
반응형
'🖥️ IT, 컴퓨터 > 🏁 SQL・빅쿼리' 카테고리의 다른 글
[SQL] CURDATE() 함수란? (0) | 2024.11.24 |
---|---|
[SQL] DATEDIFF란? (0) | 2024.11.24 |
[SQL] CTE(Common Table Expressions)란? (0) | 2024.11.24 |
[SQL] LEAD 함수란? (0) | 2024.11.24 |
[SQL] LAG란? (0) | 2024.11.24 |
댓글