【发布时间】:2012-08-06 21:32:47
【问题描述】:
我需要一个 Postgresql 查询,它返回每种类型的记录组合的计数。
例如,我有一个表 T,其中包含 A、B、C、D、E 列和其他不重要的列:
药片 -------------- 一个 |乙| C | D |乙查询应该返回一个表 R,其中包含 A、B、C、D 列的值,以及每个配置在指定 E 值下出现的次数。
表 R --------------- 一个 |乙| C | D |数数当每条记录的所有计数加在一起时,它应该等于原始表中的记录总数。
这似乎是一个很简单的问题,但由于我缺乏 SQL 知识,我不知道该怎么做。
我能想到的唯一解决方案是:
select a, b, c, d, count(*)
from T
where e = 'abc'
group by a, b, c, d
但是当从这个查询中添加计数时,它比原始表的计数要多。似乎不应该使用 count(*) ,或者我只是完全以错误的方式去做。我真的很感激任何关于我应该如何去做的建议。谢谢大家。
【问题讨论】:
-
也许你被 NULL 愚弄了?请给我们看一些数据。
-
我同意@wildplasser - 您向我们展示的内容应该可以正常工作。所以问题出在你没有向我们展示的东西上。
标签: postgresql group-by