首頁 >資料庫 >mysql教程 >如何在保留 SQL 中原始列名的同時逆透視資料?

如何在保留 SQL 中原始列名的同時逆透視資料?

Patricia Arquette
Patricia Arquette原創
2025-01-21 04:51:08605瀏覽

How Can I Unpivot Data While Keeping Original Column Names in SQL?

保持原始列名進行資料解卷積

資料解卷積(Unpivoting)是一種將表格資料​​轉換為另一種格式的過程,其中每個列都成為一行,其列名成為該行的屬性。雖然這通常用於重塑資料以進行分析或視覺化,但在某些情況下,保留原始列名可能很有用。

問題:

給定一個資料表,其列名例如NameMathsScienceEnglish,我們如何解卷積資料以獲得以下結果集?

Name Subject Marks
Tilak Maths 90
Tilak Science 40
Tilak English 60

解:

使用SQL的UNPIVOT子句,我們可以解卷積數據,同時保留列名:

<code class="language-sql">select u.name, u.subject, u.marks
from student s
unpivot
(
  marks
  for subject in (Maths, Science, English)
) u;</code>

UNPIVOT子句將MathsScienceEnglish列轉換為行,分數成為解卷積結果集中的「marks」欄位。同時,列名保留在「subject」列中。

範例:

考慮以下資料集:

Name Maths Science English
Tilak 90 40 60
Raj 30 20 10

將提供的查詢套用至此資料集,將產生所需的結果:

Name Subject Marks
Tilak Maths 90
Tilak Science 40
Tilak English 60
Raj Maths 30
Raj Science 20
Raj English 10

當保留原始列名對於進一步分析或資料處理很重要時,此技術非常有用。

以上是如何在保留 SQL 中原始列名的同時逆透視資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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