【发布时间】:2018-03-27 21:42:26
【问题描述】:
我有一个包含以下列的表格:
表名:学生
ID | Result
1 | 0
4 | 1
2 | 0
3 | 1
4 | 1
1 | 1
Result 可以是 0 或 1,分别表示“失败”或“通过”。该表可以有多个具有相同 ID(相同学生)的条目。
我的目标是创建一个名为“status”的视图,如下所示:
查看名称:状态
ID | Final_Result
1 | Failed
2 | Failed
3 | Passed
4 | Passed
也就是说,如果一个学生甚至在一门科目上不及格,他的 Final_Result 应该是“失败”。否则将是“通过”。
我完全是 Postgresql 的新手,而且我的脚都湿了。我试过了
CREATE OR REPLACE View status AS
SELECT ID,
Result,
CASE
WHEN 0 THEN 'Failed'
ELSE 'Passed'
END AS Final_Result
FROM students
GROUP BY ID;
但这显然是不对的。我想我需要使用 COUNT 函数来计算 0 的数量,然后执行 CASE 语句,但我不熟悉 SQL 中的那个。
有人可以帮助我并让我走上正轨吗?谢谢。
【问题讨论】:
-
类似
case min(Result) when 0 then 'Failed' else 'Passed' end as Final_Result。该组看起来不错 -
这就像一个魅力。谢谢!
标签: postgresql count case