select *
from student_database
where BTECH_CGPA in (SELECT max(BTECH_CGPA)
FROM student_database
group by SPECILIZATION);
这样可以选择48行,但它应该是29行,而没有与其他部门重复的最大cgpa。
示例:
BTECH_CGPA SPECILIZATION
9.55 CSE A
9.79 CSE B
9.55 CSE B (again)
请任何人帮助我
答案 0 :(得分:0)
如果你有48行,这意味着在student_database中有更多的行可以用于in子句的结果..(因为subselect中的group by确保你只得到不同的结果)
在这种情况下,如果您想在主选择中使用不同的结果,则不能使用*,但必须使用distinct子句明确设置所需的列。例如:
select distinct col1, col2
from student_database
where BTECH_CGPA in (SELECT max(BTECH_CGPA)
FROM student_database
group by SPECILIZATION);