在SQL中,可以使用PIVOT关键字来进行数据旋转(转置)。以下是一个示例:
假设有一个名为students的表,包含以下列:student_id, subject, score。
原始数据如下:
student_id | subject | score |
---|---|---|
1 | Math | 80 |
1 | English | 70 |
2 | Math | 90 |
2 | English | 85 |
现在我们想要按照subject列进行数据旋转,将subject列的值作为新的列名,同时将score作为对应的值。
下面是一个使用PIVOT关键字来实现数据旋转的SQL示例:
SELECT *
FROM
(
SELECT student_id, subject, score
FROM students
) src
PIVOT
(
SUM(score)
FOR subject IN ([Math], [English])
) piv;
执行以上SQL语句后,将得到以下结果:
student_id | Math | English |
---|---|---|
1 | 80 | 70 |
2 | 90 | 85 |
在上述示例中,我们首先使用内部查询(subquery)获取原始数据。然后,在PIVOT子句中,指定要进行旋转的列(即subject列),并为每个唯一的subject值创建一个新的列。在此示例中,我们使用了[Math]和[English]作为新的列名。
在PIVOT子句中,我们还可以指定对应于旋转后的新列的聚合函数。在此示例中,我们使用了SUM函数对score进行求和。
最后,通过FROM和PIVOT子句的组合,我们将旋转后的数据作为结果返回。
请注意,具体的列名和聚合函数可能因实际需求而有所不同。以上示例仅为演示如何使用PIVOT关键字来进行数据旋转的一种方法。
上一篇:按照某些规则生成实例类