背景
在数据分析中,经常需要统计数据集中特定字段在不同分数段中的分布情况。使用SQL查询可以轻松实现这一目标。
语法
使用以下语法可以根据分数段统计数量:
sql
SELECT
CASE
WHEN score >= lower_bound AND score < upper_bound
THEN '分数段'
END AS score_range,
COUNT(*) AS count
FROM table_name
GROUP BY score_range;
参数
* **lower_bound**:分数段的下限
* **upper_bound**:分数段的上限
* **table_name**:要查询的表名
* **score**:要统计的分数字段
示例
假设有一张名为 student_scores 的表,其中包含学生的分数信息。要统计分数在各个分数段中的人数,可以运行以下查询:
sql
SELECT
CASE
WHEN score >= 0 AND score < 60
THEN '不及格'
WHEN score >= 60 AND score < 70
THEN '及格'
WHEN score >= 70 AND score < 80
THEN '良好'
WHEN score >= 80 AND score < 90
THEN '优秀'
WHEN score >= 90 AND score <= 100
THEN '卓越'
END AS score_range,
COUNT(*) AS count
FROM student_scores
GROUP BY score_range;
结果
查询将返回一个表,其中包含分数段和对应的人数。
| 分数段 | 人数 |
|---|---|
| 不及格 | 10 |
| 及格 | 20 |
| 良好 | 30 |
| 优秀 | 25 |
| 卓越 | 15 |
注意事项
* 分数段的范围可以根据需要进行调整。
* 可以使用多个CASE语句来定义更复杂的评分规则。
* 查询结果可以进一步用于可视化或其他分析。