美文网首页
同列分类求和并按其他列分组 sqlalchemy 和 SQL

同列分类求和并按其他列分组 sqlalchemy 和 SQL

作者: 七胡萝北 | 来源:发表于2018-04-24 13:07 被阅读0次

同列分类求和并按其他列分组

userid type income
1 微信 4
2 支付宝 2
2 微信 6
1 支付宝 7
... ... ...

问题描述:如上表 INCOME,要分别统计每个用户微信、支付宝的收入总和,结果格式如下。(即按 微信、支付宝分类,按照userid分group求和)

userid 微信 支付宝
1 xxx xxx
2 xxx xxx
//sqlalchemy
db.session.query(INCOME.userid,
func.sum(case([(INCOME.type=='微信',INCOME.income)],else_=0)).label('income_wx'),
func.sum(case([(INCOME.type=='支付宝',INCOME.income)],else_=0)).label('income_ali'),
).group_by(INCOME.userid).all()

//sql 
SELECT userid,
    SUM(CASE WHEN type='微信' THEN income ELSE 0 END) AS income_wx,
    SUM(CASE WHEN type='支付宝' THEN income ELSE 0 END) AS income_ali
FROM INCOME GROUP BY userid

相关文章

网友评论

      本文标题:同列分类求和并按其他列分组 sqlalchemy 和 SQL

      本文链接:https://www.haomeiwen.com/subject/jlndlftx.html