【发布时间】:2016-06-25 22:26:17
【问题描述】:
我有一个表,我希望通过使用某个键对数据进行分组来从中选择数据。对于每个组,我还想计算属于该组的行数符合特定标准。即使该组中的 0 行符合条件,我仍然希望返回该组并显示 0 行符合条件的“计数”字段。正因为如此,我不能简单地用“where”子句过滤掉不需要的行,然后简单地选择组内元素的数量。
任何帮助将不胜感激
【问题讨论】:
-
将来,这将是一件好事:stackoverflow.com/help/how-to-ask
-
您可能正在寻找 OVER() 子句。 stackoverflow.com/questions/5146978/…
-
Aggregate FILTER clause。所以你的查询应该像
select group_field, count(*) filter (where <certain criteria>) from your_table group by group_field;
标签: sql postgresql count group-by