zoukankan      html  css  js  c++  java
  • SQL知多少?利用group by配合case when来对数据做区间汇总

    如下是产品经理的一个提数需求。

    要求计算出来不同收入区间里的人数、总金额。

    怎么实现?

    group by是少不了的。不过,总不能每个区间都去执行一次包含group by的select语句吧,那多耽误工夫啊。教你一招,拿走不谢!

    group by配合case when,也许你不晓得有多爽!

    简化一下场景,例如,下面表格左边是原始数据,右边是基于原始数据的统计结果。

    原始数据 →→→ 统计结果

    user   amt
    -------- --------
    ZhangSan 10
    Molly    15
    Biden    21
    Hack    16

    →→→

    amtRange userCount totalAmt
    --------   ---------    ----------
    1X      3        41
    2X      1        21

     下面sql,拿走不谢。

    SELECT  CASE WHEN amt>=10 AND amt<20 THEN '1X' WHEN amt>=20 AND amt<30 THEN '2X' ELSE 0 END AS 'amtRange'
        , COUNT(1) AS 'userCount', SUM(amt) AS 'totalAmt'
    FROM(
        SELECT 'ZhangSan' AS USER,10  AS amt
        UNION ALL 
        SELECT 'Molly',15 
        UNION ALL 
        SELECT 'Biden',21
        UNION ALL 
        SELECT 'Hack',16
    ) a
    GROUP BY CASE WHEN amt>=10 AND amt<20 THEN '1X' WHEN amt>=20 AND amt<30 THEN '2X' ELSE 0 END
  • 相关阅读:
    Python time
    Python List/Tutle/Set/Str/Dict
    python os
    Python 学习之九九乘法表
    Pycharm配置
    python 打包exe:
    Linux 安装PHP扩展过程
    tkinter在循环中创建按钮以传递命令参数,闭包的坑
    tkinter
    设置greenplum用户和密码访问:
  • 原文地址:https://www.cnblogs.com/buguge/p/15695724.html
Copyright © 2011-2022 走看看