postgresql中的数据透视等价
我在SQL Server中使用的是postgresql中的数据透视等价,sql,postgresql,Sql,Postgresql,我在SQL Server中使用的是pivot,其中有以下语句: Select YR, [1] As Beginning, [2] As Inter, [3] As Advanced, [4] As AdvHigh,Campus From (Select YR, Rating, StudentId, Campus from mytable Where YR = '2014' ) As Data PIVOT (Count(Stud
pivot
,其中有以下语句:
Select YR, [1] As Beginning, [2] As Inter, [3] As Advanced, [4] As AdvHigh,Campus
From
(Select YR, Rating, StudentId, Campus
from mytable
Where YR = '2014'
) As Data
PIVOT (Count(StudentId)
For Rating IN ([1], [2], [3], [4])
) As Pvt
现在我正在尝试用Postgresql编写相同的查询(我是Postgresql的新手)。我已经看过了tablefunc,但还不确定如何使用它
任何帮助都会很好 我不太熟悉postgresql中的
tablefunc
,但是您可以通过使用带有聚合函数的CASE
表达式来复制PIVOT
:
Select YR,
sum(case when ListeningProfRating = 1 then 1 else 0 end) As Begining,
sum(case when ListeningProfRating = 2 then 1 else 0 end) As Inter,
sum(case when ListeningProfRating = 3 then 1 else 0 end) As Advanced,
sum(case when ListeningProfRating = 4 then 1 else 0 end) As AdvHigh
Campus
from mytable
Where YR = '2014'
AND ListeningScoreCode IN('S', 'B')
group by yr, campus
您能提供一个带有示例输入和示例输出的SQLFiddle()吗?您好,谢谢您提供的解决方案。效果很好。有没有一种方法可以在这里使用crosstab作为轴心点?@crozzfire是的,但我不熟悉这种语法-请看这个问题/答案--