반응형
1. PIVOT과 CONNECT BY를 활용한 동적 쿼리
PIVOT과 CONNECT BY를 활용하여 동적 월별 합산 쿼리를 작성할 수 있습니다.
예제: 월별 거래 합산
sql
WITH months AS (
SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), LEVEL - 1), 'YYYY-MM') AS month_label
FROM dual
CONNECT BY LEVEL <= 12
),
transformed_data AS (
SELECT TO_CHAR(transaction_date, 'YYYY-MM') AS month_label, amount
FROM transactions
)
SELECT *
FROM transformed_data
PIVOT (
SUM(amount) FOR month_label IN ('2025-01' AS "JAN", '2025-02' AS "FEB", '2025-03' AS "MAR")
);
2. 반기별 거래 합산
CASE 문을 활용하여 6개월 단위로 거래 데이터를 그룹화할 수 있습니다.
예제: 반기별 합산
sql
SELECT
CASE
WHEN EXTRACT(MONTH FROM transaction_date) BETWEEN 1 AND 6
THEN TO_DATE(EXTRACT(YEAR FROM transaction_date) || '-01-01', 'YYYY-MM-DD')
ELSE TO_DATE(EXTRACT(YEAR FROM transaction_date) || '-07-01', 'YYYY-MM-DD')
END AS half_year_start,
SUM(amount) AS total_amount
FROM transactions
GROUP BY
CASE
WHEN EXTRACT(MONTH FROM transaction_date) BETWEEN 1 AND 6
THEN TO_DATE(EXTRACT(YEAR FROM transaction_date) || '-01-01', 'YYYY-MM-DD')
ELSE TO_DATE(EXTRACT(YEAR FROM transaction_date) || '-07-01', 'YYYY-MM-DD')
END
ORDER BY half_year_start;
3. 중위값, 빈도, 분산 계산
Oracle에서 데이터를 분석할 때 유용한 함수들입니다.
중위값 계산: MEDIAN()
sql
SELECT MEDIAN(amount) AS median_value
FROM transactions;
빈도 계산: COUNT()
sql
SELECT amount, COUNT(*) AS frequency
FROM transactions
GROUP BY amount
ORDER BY frequency DESC;
분산 계산: VARIANCE()
sql
SELECT VARIANCE(amount) AS variance_value
FROM transactions;
표준 편차 계산: STDDEV()
sql
SELECT STDDEV(amount) AS stddev_value
FROM transactions;
결론
Oracle 데이터베이스는 강력한 함수와 쿼리 작성 기능을 제공합니다. 이번에 다룬 예제들을 활용하면 데이터 분석과 관리에서 더 효율적인 작업을 할 수 있습니다. 필요에 따라 커스터마이즈하여 여러분의 프로젝트에 적용해보세요!
반응형
'갑을병정이야기' 카테고리의 다른 글
Oracle 실전 활용 팁 모음 (1) | 2025.04.16 |
---|---|
안드로이드 개발과 유용한 팁들 (1) | 2024.12.25 |
jQuery 배열 복사 방법 (2) | 2024.12.19 |
Remote Operations와 DxDataGrid를 활용한 웹 애플리케이션 예제 (1) | 2024.12.17 |
Java와 함께 하는 koin(feat kotlin), json 활용 이야기 (1) | 2024.12.14 |