Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于统计不同用户的sql分组_Sql_Postgresql - Fatal编程技术网

用于统计不同用户的sql分组

用于统计不同用户的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

在Postgres中,我有一个
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

计数(不同的列名)?选择属性,从属性组中按属性计数(不同的用户)将准确地生成您的请求。