首頁 > 資料庫 > mysql教程 > 如何在 Oracle SQL 中透視每月資料以便更輕鬆地進行分析?

如何在 Oracle SQL 中透視每月資料以便更輕鬆地進行分析?

Mary-Kate Olsen
發布: 2025-01-23 07:37:10
原創
724 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板