Sql 如何联接表上的分组字段和筛选字段?
我有这个数据集,我想按用户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. 40Sql 如何联接表上的分组字段和筛选字段?,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
也许是一个简单的条件聚合 示例
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对不起,右:总和(值)过滤器(其中…)