mysql 分段统计 的两种方法

一 sum + case 函数

 SELECT
		    sum(CASE when t.money <= 100000 then 1 else 0 end)   AS a   ,
        sum(CASE when  t.money > 100000 and   t.money <= 500000 then 1 else 0 end)  AS b    ,
        sum(CASE when  t.money > 500000 and   t.money <= 1000000 then 1 else 0 end)  AS c  ,
        sum(CASE when  t.money > 1000000 and t.money <= 5000000 then 1 else 0 end)  AS d    ,
        sum(CASE when  t.money > 5000000 and  t.money <= 10000000  then 1 else 0 end)   AS e ,
        sum(CASE when  t.money > 10000000 and  t.money <= 15000000  then 1 else 0 end)   AS f ,
        sum(CASE when  t.money > 15000000 and   t.money <= 20000000  then 1 else 0 end)   AS g 
        FROM
        (SELECT
        SUM(amount_money) AS money
        FROM
        `hx_winning_bid_info` where is_del = '0'
        GROUP BY tender_project_id) AS t

二 count 函数

  SELECT
        COUNT(t.money >= 0 AND t.money < 100000 OR NULL) AS zeroToOht,
        COUNT(t.money >= 100000 AND t.money < 500000 OR NULL) AS ohtToFht,
        COUNT(t.money >= 500000 AND t.money < 1000000 OR NULL) AS fhtToOm,
        COUNT(t.money >= 1000000 AND t.money < 5000000 OR NULL) AS omToFm,
        COUNT(t.money >= 5000000 AND t.money < 10000000 OR NULL) AS fmToTm,
        COUNT(t.money >= 10000000 AND t.money < 15000000 OR NULL) AS tmToFm,
        COUNT(t.money >= 15000000 AND t.money < 20000000 OR NULL) AS fmToTtm,
        COUNT(t.money >= 20000000 OR NULL) AS moreThanTwentyMillion
        FROM
        (SELECT
        SUM(amount_money) AS money
        FROM
        `hx_winning_bid_info` where is_del = '0'
        GROUP BY tender_project_id) AS t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值