【发布时间】:2018-02-07 18:19:09
【问题描述】:
我希望返回成绩最高的个人的姓名。我在想max(count(*)) 之类的东西,但我不能完全破解它。
这是数据集
+ -------- Student -------- + + -------- Grades --------- +
+ Student_ID INT + + Student_ID INT +
+ Student_Name VARCHAR(10) + + Assignment_ID INT +
+ + + Grade INT +
+ ------------------------- + + ------------------------- +
INSERTS INSERTS
(Student_ID, Student_Name) (Student_ID, Assignment_ID, Grade)
(1,'Alex') (1,10,90) (2,10,85)
(2, 'Brett1') (3,10,75) (4,10,74)
(3,'Cora') (1,11,80) (2,11,81)
(4,'David') (4,11,88) (6,11,86)
(5,'Eleanor') (2,12,84)
(6,'Brett2')
以及我对解决方案的尝试:
SELECT s.Student_Name FROM Student s
WHERE(
SELECT * FROM Grades g
WHERE g.Student_ID=s.Student_ID
and g.Assignment_ID=MAX(COUNT(g.Assignment_ID))
)
【问题讨论】:
-
您是否正在尝试检索每个学生的最高 assignment_ID 以及相关的成绩?你能改述一下你的要求吗? (究竟什么是赋值?)
-
不,只有作业 ID 总和最高的学生的姓名。
标签: sql sql-server count max