我有两个表Users和Posts,我只需要拥有3个以上帖子和5个以上帖子的用户数量。
我需要这样的东西:
用户数 | 帖子 | |
---|---|---|
555 | >3 | |
888 | >;5 |
您可以使用两个级别的聚合
select sum(case when cnt > 3 then 1 else 0 end) cnt_3,
sum(case when cnt > 5 then 1 else 0 end) cnt_5
from (select ownerid, count(*) cnt from posts group by ownerid) p
请注意,您不需要引入users
表;CCD_ 2表具有我们需要的所有信息。
根据您的数据库,可能会提供语法快捷方式,如MySQL中的
select sum(cnt > 3) cnt_3,
sum(cnt > 5) cnt_5
from (select ownerid, count(*) cnt from posts group by ownerid) p
或者在Posgres:中
select count(*) where(cnt > 3) cnt_3,
count(*) where(cnt > 5) cnt_5
from (select ownerid, count(*) cnt from posts group by ownerid) p