반응형
EXTRACT란?
EXTRACT는 SQL에서 날짜 또는 시간 데이터에서 특정 **부분(컴포넌트)**을 추출하는 데 사용되는 함수입니다. 예를 들어, 날짜에서 연도, 월, 일 등을 추출하거나 시간에서 시, 분, 초를 가져올 수 있습니다.
EXTRACT 기본 구조
EXTRACT(필드 FROM 날짜_컬럼)
주요 구성 요소:
- 필드: 날짜/시간에서 추출할 부분(예: 연도, 월, 일 등).
- 날짜_컬럼: 날짜 또는 시간 데이터를 포함한 컬럼 또는 값.
지원되는 필드
EXTRACT에서 사용할 수 있는 필드는 데이터베이스 시스템에 따라 다를 수 있지만, 일반적으로 아래와 같은 값이 지원됩니다:
필드 설명 예시 (2024-11-24 14:30:45)
YEAR | 연도 | 2024 |
MONTH | 월 | 11 |
DAY | 일 | 24 |
HOUR | 시 | 14 |
MINUTE | 분 | 30 |
SECOND | 초 | 45 |
WEEK | 연중 몇 번째 주인지 | 47 |
DAY_OF_WEEK | 요일 (일요일=1, 월요일=2 등) | 시스템마다 다름 |
DAY_OF_YEAR | 연중 몇 번째 날인지 | 329 |
QUARTER | 분기 | 4 |
사용 예제
예제 테이블: 주문
주문ID 주문일시
1 | 2024-11-24 14:30:45 |
2 | 2024-12-01 09:15:00 |
1. 연도 추출
SELECT 주문ID, EXTRACT(YEAR FROM 주문일시) AS 연도
FROM 주문;
주문ID 연도
1 | 2024 |
2 | 2024 |
2. 월 추출
SELECT 주문ID, EXTRACT(MONTH FROM 주문일시) AS 월
FROM 주문;
주문ID 월
1 | 11 |
2 | 12 |
3. 일 추출
SELECT 주문ID, EXTRACT(DAY FROM 주문일시) AS 일
FROM 주문;
주문ID 일
1 | 24 |
2 | 1 |
4. 시간 추출
SELECT 주문ID, EXTRACT(HOUR FROM 주문일시) AS 시
FROM 주문;
주문ID 시
1 | 14 |
2 | 9 |
5. 분기 추출
SELECT 주문ID, EXTRACT(QUARTER FROM 주문일시) AS 분기
FROM 주문;
주문ID 분기
1 | 4 |
2 | 4 |
실전 활용
1. 특정 연도의 데이터 조회
예제: 2024년에 발생한 주문만 조회.
SELECT *
FROM 주문
WHERE EXTRACT(YEAR FROM 주문일시) = 2024;
2. 월별 데이터 집계
예제: 월별로 주문 수 집계.
SELECT
EXTRACT(MONTH FROM 주문일시) AS 월,
COUNT(*) AS 주문수
FROM 주문
GROUP BY EXTRACT(MONTH FROM 주문일시);
3. 주말 주문 데이터 조회
예제: 요일별로 데이터를 필터링(주말 기준: 토요일=6, 일요일=7).
SELECT *
FROM 주문
WHERE EXTRACT(DAY_OF_WEEK FROM 주문일시) IN (6, 7);
4. 분기별 매출 분석
예제: 분기별 총 매출 계산.
SELECT
EXTRACT(QUARTER FROM 주문일시) AS 분기,
SUM(매출액) AS 총매출
FROM 주문
GROUP BY EXTRACT(QUARTER FROM 주문일시);
EXTRACT의 장점
- 날짜/시간 기반 분석 간소화:
- 특정 기간, 시간대를 기준으로 데이터를 필터링하거나 그룹화 가능.
- 다양한 필드 지원:
- 연도, 월, 일, 시간뿐만 아니라 분기, 요일, 주 등 다양한 분석 가능.
- 가독성:
- 복잡한 날짜 함수보다 간결하고 이해하기 쉬움.
주의사항
- 필드 지원 여부:
- 일부 데이터베이스에서는 특정 필드(예: DAY_OF_WEEK)가 지원되지 않을 수 있음.
- 시간대:
- 반환 값은 데이터베이스 서버의 시간대 설정을 따름.
- 대체 함수:
- 일부 데이터베이스(MySQL 등)에서는 YEAR, MONTH, DAY 같은 개별 함수도 사용 가능.
관련 함수
- DATE_PART:
- PostgreSQL에서 유사한 역할을 수행하는 함수.
- 예: DATE_PART('month', 주문일시)
- YEAR(), MONTH(), DAY():
- MySQL에서 제공하는 대체 함수.
요약
- **EXTRACT**는 날짜/시간 데이터에서 특정 부분을 추출하는 함수.
- 주요 활용:
- 기간 필터링, 그룹화, 시간 기반 데이터 분석.
- 예제:
- 연도, 월, 일, 시간, 분기, 주 등 다양한 시간 정보 추출 가능.
EXTRACT는 시간 기반 데이터 처리에서 중요한 역할을 하며, 데이터 분석 작업을 간소화합니다! 😊
반응형
'🖥️ IT, 컴퓨터 > 🏁 SQL・빅쿼리' 카테고리의 다른 글
[SQL] NOW() 함수란? (0) | 2024.11.25 |
---|---|
[SQL] CURDATE() 함수란? (0) | 2024.11.24 |
[SQL] DATEDIFF란? (0) | 2024.11.24 |
[SQL] DATE_TRUNC이란? (0) | 2024.11.24 |
[SQL] CTE(Common Table Expressions)란? (0) | 2024.11.24 |
댓글