在Postgres中,我有一个properties
表,其中包含以下列:item, user, property
。每个项目都是唯一的,属于一个独特的用户。每个用户可以拥有多个项目。但是属性不是唯一的,即,对于许多项,相同的属性可以是相同的。如,
item, user, property
--------------------
item1 user1 property1
item1 user1 property2
item2 user1 property1
item2 user1 property3
item2 user1 property4
item3 user2 property2
item3 user2 property4
现在我想计算有多少独特用户在他们的项目中拥有给定属性,即,在这种情况下我需要得到:
property1 1
property2 2
property3 1
property4 2
我可以想到这样的SQL查询:
SELECT COUNT(*), x.property
FROM (SELECT user, property
FROM properties
GROUP BY user, property) x
GROUP BY x.property;
有更好的方法吗?谢谢!
答案 0 :(得分:3)
select count(distinct user), property
from properties
group by property
<强> sql fiddle demo 强>