mysql计算班级成绩等级等于A B C的占比
时间: 2023-08-03 14:07:30 浏览: 116
可以通过以下SQL语句来计算班级成绩等级等于A、B、C的占比:
```
SELECT
CONCAT(
ROUND(SUM(CASE WHEN grade >= 90 THEN 1 ELSE 0 END) / COUNT(*) * 100, 2), '% A, ',
ROUND(SUM(CASE WHEN grade >= 80 AND grade < 90 THEN 1 ELSE 0 END) / COUNT(*) * 100, 2), '% B, ',
ROUND(SUM(CASE WHEN grade >= 70 AND grade < 80 THEN 1 ELSE 0 END) / COUNT(*) * 100, 2), '% C'
) AS percentage
FROM
scores
WHERE
class = '班级名称';
```
其中,假设成绩表为`scores`,成绩字段为`grade`,班级字段为`class`。以上代码中会根据班级名称来计算班级成绩等级等于A、B、C的占比,并且输出结果的格式为`x.xx% A, x.xx% B, x.xx% C`。
相关问题
mysql计算班级成绩等级等于a b c的占比
可以使用以下SQL语句来计算班级成绩等级为a、b、c的占比:
```
SELECT
CONCAT(ROUND(COUNT(CASE WHEN grade = 'a' THEN 1 END) / COUNT(*) * 100, 2), '%') AS 'a占比',
CONCAT(ROUND(COUNT(CASE WHEN grade = 'b' THEN 1 END) / COUNT(*) * 100, 2), '%') AS 'b占比',
CONCAT(ROUND(COUNT(CASE WHEN grade = 'c' THEN 1 END) / COUNT(*) * 100, 2), '%') AS 'c占比'
FROM
class_scores;
```
其中,`class_scores`是存储班级成绩的表,`grade`是成绩等级的列。这个SQL语句会计算班级成绩等级为a、b、c的人数占总人数的百分比,并且以百分比的形式返回结果。
mysql 计算占比
要计算 MySQL 中某列数据的占比,可以使用以下 SQL 语句:
```
SELECT column_name, COUNT(*) * 100.0 / SUM(COUNT(*)) OVER() AS percentage
FROM table_name
GROUP BY column_name
```
其中,`column_name` 是需要计算占比的列名,`table_name` 是需要查询的表名。这条 SQL 语句会对每个不同的 `column_name` 分组,计算出该组中的记录数占总记录数的百分比。最后返回两列数据:`column_name` 和 `percentage`,前者表示分组的列名,后者表示占比。
需要注意的是,`SUM(COUNT(*)) OVER()` 这一部分是用来计算总记录数的,它会在整个查询过程中只计算一次。`COUNT(*)` 是统计每个分组中的记录数,`* 100.0 /` 是将记录数转化为百分比。
阅读全文