Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

갑을병정이야기

Oracle 실전 활용 팁 모음 (2)

Billcorea 2025. 4. 21. 15:04
반응형

오라클 함수 이야기 (feat ChatGPT)

 

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 데이터베이스는 강력한 함수와 쿼리 작성 기능을 제공합니다. 이번에 다룬 예제들을 활용하면 데이터 분석과 관리에서 더 효율적인 작업을 할 수 있습니다. 필요에 따라 커스터마이즈하여 여러분의 프로젝트에 적용해보세요!

반응형