美文网首页
同列分类求和并按其他列分组 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