>데이터 베이스 >MySQL 튜토리얼 >보다 쉬운 분석을 위해 Oracle SQL에서 월별 평면 데이터를 어떻게 피벗할 수 있습니까?

보다 쉬운 분석을 위해 Oracle SQL에서 월별 평면 데이터를 어떻게 피벗할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-23 07:37:10684검색

How Can I Pivot Flat Monthly Data in Oracle SQL for Easier Analysis?

Oracle SQL 피벗 테이블 데이터 재구성

문제: 피벗 분석을 위해 평면 테이블 형식 데이터 변환

월별로 정리된 숫자 데이터가 포함된 테이블이 있다고 가정해 보겠습니다.

<code>MONTH | VALUE
-------|------
1      | 100
2      | 200
3      | 300
...</code>

목표는 월별 값을 더 시각적으로 볼 수 있도록 이 데이터를 피벗 형식으로 변환하는 것입니다.

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | ...
---------|---------|---------|
100       | 200       | 300       | ...</code>

Oracle 11g 이상: PIVOT 연산자

Oracle 11g 이상에는 데이터를 쉽게 피벗할 수 있는 PIVOT 연산자가 도입되었습니다. 구문은 다음과 같습니다.

<code>SELECT *
FROM table_name
PIVOT (
  aggregate_function(column_name)
  FOR (pivot_column)
  IN (list_of_values)
);</code>

PIVOT 연산자를 사용한 예

다음 예제 데이터를 고려하세요.

<code>CREATE TABLE tq84_pivot (
  month NUMBER,
  value NUMBER
);

INSERT INTO tq84_pivot VALUES (1, 100), (2, 200), (3, 300), (4, 400), (5, 500), (6, 600);

SELECT 
  *
FROM 
  tq84_pivot
PIVOT (
  SUM(value) AS sum_value
  FOR (month) IN (1 AS month_jan,
                  2 AS month_feb,
                  3 AS month_mar,
                  4 AS month_apr,
                  5 AS month_mai,
                  6 AS month_jun,
                  7 AS month_jul,
                  8 AS month_aug,
                  9 AS month_sep,
                 10 AS month_oct,
                 11 AS month_nov,
                 12 AS month_dec)
);</code>

결과는 예상대로입니다:

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | ...
---------|---------|---------|
100       | 200       | 300       | ...</code>

위 내용은 보다 쉬운 분석을 위해 Oracle SQL에서 월별 평면 데이터를 어떻게 피벗할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.