我希望返回成绩最高的个人的姓名。我在想类似 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))
)
最佳答案
此查询可能有帮助:
select top 1 s.Student_ID,s.Student_Name,COUNT(g.Assignment_ID) as TotalAssignments
from Student s
inner join Grades g on s.Student_ID = g.Student_ID
group by s.Student_ID,s.Student_Name
order by COUNT(g.Assignment_ID) desc
关于sql - 选择最大计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48670759/