假设我有一个学生表,其中包含 impala 中的一些字段。想象一下,有一个名为 total_mark 的字段,我应该找到每个分支带有最大分数的学生详细信息。
我的表是这样的: -
在此表中,我必须获得每个部门最高分的 详细信息 。 我的查询将是这样的: -
select id,max(total_marks) from student_details group by department;
但是使用这个查询我只能得到id和total_marks。如果可以有同名学生,年龄我不能与年龄,姓名等字段分组。
那么如何查询表格以获取每个部门的顶尖学生的所有细节?
提前致谢。
答案 0 :(得分:4)
您可以使用JOIN概念
select stu.*
from student_details stu
join
( select department,max(total_marks) as max
from student_details
group by department
) rank
on stu.department=rank.department and stu.total_marks=rank.max;