SQL小技巧

数据库结构如下:

要求:一句SQL实现,分别统计type1,2,3,4 一共多少money (group by uid)

原先做法:分开查询 然后用php合并结果,如

select sum(money) form test where type = 1 group by uid  
select sum(money) form test where type = 2 group by uid  
select sum(money) form test where type = 3 group by uid  
select sum(money) form test where type = 4 group by uid
现在要求一句SQL。
SELECT  
uid,  
SUM( IF(`type`=1, money, 0 ) ) AS `BuyByCash`,  
SUM( IF (`type`=3, money, 0 ) ) AS `BuyByCard`,  
SUM( IF( `type` IN (1,3), money, 0 ) ) AS `BuyByCashAndCard`,  
SUM( IF(`type`=2, money, 0 ) ) AS `SellByCash`,  
SUM( IF(`type`=4, money, 0 ) ) AS `SellByCard`,  
SUM( IF( `type` IN (2,4), money, 0 ) ) AS `BuyByCashAndCard`,  
SUM(money) AS `Amount`,  
COUNT(*) AS `DataNums`  
FROM `test`   
group by `uid`
解决了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值