首頁 >資料庫 >mysql教程 >如何使用Oracle SQL的PIVOT運算子進行資料轉換?

如何使用Oracle SQL的PIVOT運算子進行資料轉換?

Linda Hamilton
Linda Hamilton原創
2025-01-23 07:26:09804瀏覽

How to Use Oracle SQL's PIVOT Operator for Data Transformation?

Oracle SQL中的透視查詢

透視查詢可讓您將資料從傳統的列格式轉換為行格式,從而能夠輕鬆地跨不同類別分析和比較資料。

建立透視查詢

在Oracle SQL中建立透視查詢,您可以使用PIVOT運算子。此運算子要求您指定要透視的資料、聚合函數(例如SUM、COUNT或AVG)以及要圍繞其透視的類別值。

範例資料與查詢

考慮tq84_pivot表中的以下範例資料:

<code>MONTH | VALUE
-------+-----------
1      | 100
2      | 200
3      | 300
4      | 400
5      | 500
6      | 600</code>

要圍繞月份類別透視資料並對VALUE列求和,您可以使用以下查詢:

<code class="language-sql">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)
);</code>

輸出結果

查詢將傳回以下輸出:

<code>MONTH_JAN | MONTH_FEB | MONTH_MAR | MONTH_APR | MONTH_MAI | MONTH_JUN
--------+--------+--------+--------+--------+--------
100      | 200      | 300      | 400      | 500      | 600</code>

Oracle 11g以上版本

Oracle 11g引入了PIVOT運算符,它允許您以更簡潔的方式建立透視查詢。對於相同範例數據,查詢可以簡化為:

<code class="language-sql">SELECT
  MONTH_JAN, MONTH_FEB, MONTH_MAR, MONTH_APR, MONTH_MAI, MONTH_JUN
FROM
  tq84_pivot
PIVOT (
  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)
);</code>

以上是如何使用Oracle SQL的PIVOT運算子進行資料轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn