2017-03-07 52 views
-2

我有2个表格。学生和考试。我想做一个查询,获取“test.test_results”中获得最高值的学生的学生姓名(名字和姓氏)。我曾尝试2个查询,但都没有给我我想要的输出:Aggregate SQL function MAX

SELECT student.studentFirstName, student.studentLastName, test.test_results, FROM student INNER JOIN test ON student.studentID = test.studentID where MAX(test.test_results) ; 

这个查询是错误的,我认为,给我一个错误。

SELECT student.studentFirstName, student.studentLastName, test.test_results, MAX(test.test_results) FROM student INNER JOIN test ON student.studentID = test.studentID; 

此查询运行,并给了我谁得到了最高成绩的学生然而,它创建了一个名为“MAX(test.test_result)”

一个额外的专栏中,我怎样才能使一个查询这给我起的名字从表格测试中获得最高test_results的学生。

回答

0

您可以使用子查询来查找最高的测试结果,然后根据该值从学生中选择一行。

SELECT student.studentFirstName, student.studentLastName, test.test_results FROM student INNER JOIN test ON student.studentID = test.studentID WHERE test.test_results = (SELECT MAX(test_results) FROM test) 

在这里你SELECT MAX(test_result) FROM test然后你选择与该值关联的学生。

+0

这很有用,谢谢,但它可能与一个查询或有更有效的方式吗? – CsharpStudent