Naw*_*gle 1 mysql sql-order-by
我需要根据某些值的平均值对SQL表中的值进行排序.
我的'考试'表格如下:
+------------+------------+------+
| Exam | Student_ID |Points|
+------------+------------+-------
| Math | 3 | 20 |
|Accounts I | 23 | NULL |
|Statistics | 12 | 15 |
|Accounts II | 3 | 21 |
+------------+------------+------+
Run Code Online (Sandbox Code Playgroud)
这是我试过的查询:
SELECT Student_ID FROM Exams GROUP BY Student_ID ORDER BY avg(POINTS) desc
Run Code Online (Sandbox Code Playgroud)
我的目标是获得平均评分最高的学生的学生证,在这种情况下,3
我的方法是正确的,还是潜伏在那里?如何在Points列中处理NULL值?
你有2个选择:
不要算NULL:
SELECT Student_ID, AVG(Points) AS apoints
FROM Exam
WHERE Points IS NOT NULL
GROUP BY Student_ID
ORDER BY apoints DESC
Run Code Online (Sandbox Code Playgroud)
假设NULL是一个数字(在本例中为0):
SELECT Student_ID, AVG(COALESCE(Points,0)) AS apoints
FROM Exam
GROUP BY Student_ID
ORDER BY apoints DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6315 次 |
| 最近记录: |