【发布时间】:2020-12-11 14:32:39
【问题描述】:
这个问题是在练习测试中提出的,我是 SQL 新手。
问题是确定男女学生的平均分数。此外,您还需要确定分数高于其性别平均水平的学生人数。
表格说明:
=======================
| Field | Type |
=======================
| RollNo | int |
| Name | text |
| Gender | text |
| Score | text |
=======================
示例输入:
=========================================
| RollNo | Name | Gender | Score |
=========================================
| 101 | John | M | 85 |
| 102 | Tracy | F | 79 |
| 103 | Jake | M | 92 |
| 104 | Edgar | M | |
| 105 | Monica | F | 25 |
| 106 | Alicia | F | 50 |
| 107 | Yash | M | 68 |
=========================================
输出:
=================================
| Gender | Count | AvgScore |
=================================
| Female | 1 | 51 |
| Male | 2 | 81 |
=================================
输出解释:
有 4 名男学生,但 1 名学生没有尝试,因此我们忽略了该空值。
所以男性的平均得分是(85 + 92 + 68)/3 = 81.67(只取整数值)
81分以上的学生只有2人
这个我只是为了计算男性和女性的数量而尝试的:
SELECT
CASE WHEN S.Gender="M" then "Male" else "Female" END AS Gender
COUNT(Gender) as Count
FROM Students AS S
GROUP BY Gender
我不知道在哪里放置AVG 函数。我应该使用嵌套查询吗?或者有什么我可以预先查询平均值然后与每一行进行比较的吗?
【问题讨论】:
-
您使用的是 MySQL 还是 MS SQL Server?
-
我正在使用 MySQL