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

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

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL语言基础 本章,我们将会重点探讨SQL语言基础,学习用SQL进行数据库的基本数据查询操作。另外请注意本章的S...
    厲铆兄阅读 10,697评论 2 46
  • group by 用来在原始数据上创建聚合来将数据转化为有用的信息。 基本的group by 列出个个部门的名称...
    猫猫_tomluo阅读 5,002评论 0 6
  • 今天一天如常,感觉状态比昨天强点,可能是因为有点上火,口气特别大,嘴里也有味道。 近期因为加班和自身懒惰,原定的学...
    兆之阅读 1,345评论 0 0
  • 看到我的花道老师清一和两位师姐在影院门口候着我的那一刻,毛躁的心顿时静了下来~我们今天要看一部直至下院线大多数人都...
    霜巍阅读 2,910评论 0 0