sql语句-根据不同状态分组查询不同字段总和

这篇博客介绍了如何在MySQL中根据`freeze_status`字段的状态,分组查询并汇总`integral_frozen`的总和。通过使用UNION和子查询,博主解决了在同一记录中展示不同状态积分总和的问题,并利用三元运算处理了空值,以计算提成积分的总和。
摘要由CSDN通过智能技术生成

首先展示一下我需要处理的表~

我首先想到的是根据freeze_status的不同状态分组查询,分别得到两种状态写的冻结积分(integral_frozen)总和,然后再通过union 连接两个不同的查询语句,sql语句如下:

select user_id, SUM(integral_frozen),freeze_status from ws_user_account where freeze_status=0  GROUP BY user_id
UNION ALL
select user_id, SUM(integral_frozen),freeze_status from ws_user_account where freeze_status=1  GROUP BY user_id 

通过UNION 可以查到我想要的数据即查询freeze_status为不同状态下不同用户积分冻结以及解冻情况,但是,由于我要在页面进行显示,所以同一个用户的freeze_status为不同状态下的积分总和【即SUM(integral_frozen)】应该分别展示在同一条记录里面,故而下面的结果肯定是不可取的。

通过使用distinct去重相同的user_id,然后分别查出冻结金额总和【即freeze_status=1时SUM(integral_frozen)】和解冻金额总和【即freeze_status

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值