首頁 > 資料庫 > mysql教程 > SQL Unpivoting 如何將寬表格資料轉換為長格式?

SQL Unpivoting 如何將寬表格資料轉換為長格式?

Patricia Arquette
發布: 2025-01-21 04:46:08
原創
280 人瀏覽過

How Can SQL Unpivoting Transform Wide Tabular Data into a Long Format?

逆透視:重組關係資料

想像一個表格 StudentMarks,儲存學生姓名 (Name) 及其各科目的分數 (MathsScienceEnglish)。 數據最初是這樣組織的:

<code>Name, Maths, Science, English
Tilak, 90, 40, 60
Raj, 30, 20, 10</code>
登入後複製

但是,如果我們需要不同的結構(每個科目的分數出現在新行)怎麼辦? 期望的結果如下圖所示:

<code>Name, Subject, Marks
Tilak, Maths, 90
Tilak, Science, 40
Tilak, English, 60
Raj, Maths, 30
Raj, Science, 20
Raj, English, 10</code>
登入後複製

這就是 SQL 逆透視的用武之地。它是一種將寬表(多列)轉換為長表(多行)的強大技術。

以下是如何使用 SQL 查詢來完成此操作:

SELECT u.name, u.subject, u.marks
FROM student s
UNPIVOT
(
  marks
  FOR subject IN (Maths, Science, English)
) u;
登入後複製

此查詢使用 UNPIVOT 運算子。 它採用 MathsScienceEnglish 列,並將它們轉換為單一 Subject 列,並在 Marks 列中提供相應的分數。 結果是所需的長格式。

有關現場演示,請查看此 SQL Fiddle:

SQL 小提琴範例

以上是SQL Unpivoting 如何將寬表格資料轉換為長格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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