Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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_Aggregation - Fatal编程技术网

Sql 如何联接表上的分组字段和筛选字段?

Sql 如何联接表上的分组字段和筛选字段?,sql,postgresql,aggregation,Sql,Postgresql,Aggregation,我有这个数据集,我想按用户id分组,并按类别对值求和 身份证件 用户id 类别 价值 0 1. 1. 10 1. 1. 1. 20 2. 1. 2. 10 3. 1. 2. 30 4. 1. 3. 10 5. 2. 3. 40 也许是一个简单的条件聚合 示例 Select user_id ,sum( case when category=1 then value else 0 end) as category_1 ,sum( case when category=2 th

我有这个数据集,我想按用户id分组,并按类别对值求和

身份证件 用户id 类别 价值 0 1. 1. 10 1. 1. 1. 20 2. 1. 2. 10 3. 1. 2. 30 4. 1. 3. 10 5. 2. 3. 40
也许是一个简单的条件聚合

示例

Select user_id
      ,sum( case when category=1 then value else 0 end) as category_1
      ,sum( case when category=2 then value else 0 end) as category_2 
      ,sum( case when category=3 then value else 0 end) as category_3
 From  YourTable
 Group By user_id

在子查询中使用
Count
函数,然后使用
Having
子句或
ON
子句或
Where
子句中的atlast by检查子查询中的函数。很抱歉@Thiyagu我不理解您的建议:思考:您使用的是SQL Server还是PostgreSQL?PostgresSQL实际上看起来好多了!感谢you@BrunoLoops总是很高兴help@BrunoLoops:或者,您可以使用
count(*)过滤器(其中category=1)作为category_1
@a_horse_,除了
count(*)
!=<代码>总和(值)@MatBailie:a对不起,右:
总和(值)过滤器(其中…)