anranhui

2020-08-13   阅读量: 53

Mysql

成绩表A,总分100,以10分为一个分数段,统计各分数段的人数(SQL)

需求: 根据成绩表数据,以10分为一个分数段,成绩进行分段统计

思路:1.对成绩除10,然后向下取整,得到区间分组值;
2.根据区间分组值进行分组统计;

1.创建表A,并且插入值

CREATE TABLE A(
    name VARCHAR,
    grade float)
INSERT INTO a VALUES ('a', 90);
INSERT INTO a VALUES ('b', 93);
INSERT INTO a VALUES ('c', 70);
INSERT INTO a VALUES ('d', 80);
INSERT INTO a VALUES ('d', 10);
INSERT INTO a VALUES ('d', 8);
INSERT INTO a VALUES ('d', 100);
INSERT INTO a VALUES ('d', 0);

2.查看表数据

SELECT * from a ;

3.先对数据进行除10向下取整操作

SELECT
    t.con, count (*)FROM
    (        SELECT
            floor((A .grade / 10)) AS con        FROM
            A
    ) TGROUP BY
    T .con;

在对处理数据进行统计

SELECT
    (
        (T .con * 10) || '-' || ((T .con + 1) * 10 - 1)
    ) AS "分数段",    COUNT (*) AS "人数"FROM
    (        SELECT
            FLOOR ((A .grade / 10)) AS con        FROM
            A
    ) TGROUP BY
    T .con








47.6465 3 0 关注作者 收藏

评论(0)


暂无数据

推荐帖子

推荐课程