保持原始列名進行資料解卷積
資料解卷積(Unpivoting)是一種將表格資料轉換為另一種格式的過程,其中每個列都成為一行,其列名成為該行的屬性。雖然這通常用於重塑資料以進行分析或視覺化,但在某些情況下,保留原始列名可能很有用。
問題:
給定一個資料表,其列名例如Name
、Maths
、Science
和English
,我們如何解卷積資料以獲得以下結果集?
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
子句將Maths
、Science
和English
列轉換為行,分數成為解卷積結果集中的「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中文網其他相關文章!