新手Postgresql(9.6.6)在这里提问:)
我想创建一个View,它将根据不同的条件将单个列拆分为多个列.
示例表
Name Score Season ------- ------- -------- John 12 Fall John 15 Winter John 13 Spring Sally 17 Fall Sally 10 Winter Sally 14 Spring Henry 16 Fall Henry 12 Winter Henry 18 Spring
我希望View能够显示如下所示的内容:
Name Fall Score Winter Score Spring Score ------- ------------ -------------- -------------- John 12 15 13 Sally 17 10 14 Henry 16 12 18
"Score"字段分为几个不同的列,每个列都基于引用"Season"字段的WHERE子句填充.我已经查看了Window Functions和CASE语句来实现这个目的,但到目前为止还没有成功.
任何帮助是极大的赞赏!
在对列进行分组Name然后有条件地SUM对Score列进行分组时从整个表中进行选择将起作用:
SELECT
"Name",
SUM(CASE WHEN "Season" = 'Fall' THEN "Score" ELSE 0 END) AS "Fall",
SUM(CASE WHEN "Season" = 'Winter' THEN "Score" ELSE 0 END) AS "Winter",
SUM(CASE WHEN "Season" = 'Spring' THEN "Score" ELSE 0 END) AS "Spring"
FROM "mytable"
GROUP BY "Name"
Run Code Online (Sandbox Code Playgroud)
您是否使用SUM()取决于您以及数据的外观.如果每对(Name,Season)对有一行,那么SUM()它将同样有效MAX()
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |