대부분의 테이블에 날짜 데이터가 등록된 컬럼이 있을 것이다. 날짜별로 그룹화 하여 조회하려면 어떻게 해야할까??
1. TRUNC 함수 사용
TRUNC 함수를 사용하면 날짜별로 잘라낼 수 있다.
* 월 단위로 자르는 예시
SELECT TRUNC(REG_DT, 'MM') AS month_start,
COUNT(*) AS cnt
FROM your_table
GROUP BY TRUNC(REG_DT, 'MM')
ORDER BY month_start;
이 쿼리는 REG_DT의 월의 첫 날(예: 2024-08-01) 기준으로 그룹화하여 각 월에 해당하는 데이터 건수를 보여준다.
2. TO_CHAR 함수 사용
날짜를 원하는 형식(예: 'YYYY-MM')으로 변환하여 그룹화할 수도 있다.
SELECT TO_CHAR(REG_DT, 'YYYY-MM') AS month,
COUNT(*) AS cnt
FROM your_table
GROUP BY TO_CHAR(REG_DT, 'YYYY-MM')
ORDER BY month;
* 만약 REG_DT 컬럼이 문자열 형식이라면, 먼저 TO_DATE 또는 TO_TIMESTAMP 함수를 사용하여 날짜로 변환해야 한다.
'Back-End > DB' 카테고리의 다른 글
| 데이터베이스에 대량 데이터를 Insert 할 때, 속도 차이가 나는 이유 (0) | 2025.06.16 |
|---|---|
| Oracle SQL Developer 에서 쿼리 계획(EXPLAIN PLAN) 보는 방법 (0) | 2025.05.07 |
| 오라클 ORA-00054 : 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다. (0) | 2025.04.03 |
| 오라클에서 정말 많이 사용하는 GROUP BY 졸업하기 (0) | 2025.03.12 |
| 오라클 MERGE INTO 구문과 INACTIVE (1) | 2024.10.18 |