Hugh's Blog

MySQL 分段统计

今天碰到一个有意思的题目,关于分段统计的,例如统计成绩在 1-10,11-20,21-30… 的人数,利用 ceil 函数一条语句就能解决。

-- 建立测试表
create table class(
   name VARCHAR(255) NOT NULL,
   score INT NOT NULL
);
insert into class(name, score) values
    ('11111', 82),
    ('22222', 52),
    ('33333', 82),
    ('44444', 94),
    ('55555', 70),
    ('66666', 84),
    ('77777', 67),
    ('88888', 92);

-- 利用 ceil 函数对分数段进行统一处理
select ceil(score / 10) as score_bound, count(*) as score_count from class group by ceil(score / 10);