保持原始列名进行数据解卷积
数据解卷积(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中文网其他相关文章!