用于统计不同用户的sql分组
在Postgres中,我有一个用于统计不同用户的sql分组,sql,postgresql,Sql,Postgresql,在Postgres中,我有一个properties表,表中有以下列:item、user、property。每个项目都是唯一的,并且属于唯一的用户。每个用户可以有多个项目。但是属性不是唯一的,也就是说,对于许多项目,相同的属性可以是相同的。e、 g item, user, property -------------------- item1 user1 property1 item1 user1 property2 item2 user1 property1 item2 user1 proper
properties
表,表中有以下列:item、user、property
。每个项目都是唯一的,并且属于唯一的用户。每个用户可以有多个项目。但是属性不是唯一的,也就是说,对于许多项目,相同的属性可以是相同的。e、 g
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;
有更好的方法吗?谢谢
select count(distinct user), property
from properties
group by property
计数(不同的列名)?选择属性,从属性组中按属性计数(不同的用户)将准确地生成您的请求。