mysql区间分组查询

知道每个人的消费金额,想查出消费金额在0-10元,10-20元,20-50元以及50元以上区间的人数和总金额数

建表并插入数据

DROP TABLE
IF
    EXISTS consumption;
CREATE TABLE consumption (
    id INT ( 11 ) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
    consumer VARCHAR ( 50 ) DEFAULT NULL COMMENT '消费者',
    money DECIMAL ( 10, 2 ) DEFAULT '0.00' COMMENT '消费金额',
    PRIMARY KEY ( id )
) DEFAULT CHARSET = utf8 COMMENT = '消费表';
INSERT INTO consumption ( consumer, money )
VALUES
    ( '小红', 5 ),( '小明', 56 ),( '小花', 500 ),( '小华', 23 ),( '小军', 45 ),( '小怜', 34 ),( '小菲', 16 );


查询语句

SELECT
    (
    CASE
            WHEN total >= 0
            AND total <= 10 THEN "0-10元" WHEN total > 10
                AND total <= 20 THEN "10-20元" WHEN total > 20
                    AND total <= 50 THEN
                        "20-50元" ELSE "50元以上"
                    END
                    ) AS '消费区间',
                    count( consumer ) '人数',
                    sum( total ) '消费金额'
                FROM
                    ( SELECT consumer, sum( money ) total FROM consumption GROUP BY consumer ) t1
                GROUP BY
                    (
                    CASE
                            WHEN total >= 0
                            AND total <= 10 THEN "0-10元" WHEN total > 10
                                AND total <= 20 THEN "10-20元" WHEN total > 20
                                    AND total <= 50 THEN
                                        "20-50元" ELSE "50元以上"
                                    END
                                    )
                            ORDER BY total

 查询结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值