我怎样才能得到获得最高助学金的学生的名字?

bbmckpt7  于 2021-08-09  发布在  Java
关注(0)|答案(4)|浏览(228)


我得到这个错误:
消息147,15级,状态1,第3行
聚合不能出现在where子句中,除非它出现在having子句或select列表中包含的子查询中,并且被聚合的列是外部引用。

ovfsdjhp

ovfsdjhp1#

使用 TOP :

select top (1) name
from student s
order by grant desc;

上面的语句总是返回一行,即使最高授予有并列关系。如果需要所有这些行,可以添加 with ties 修饰语:

select top (1) with ties name
from student s
order by grant desc;
djmepvbi

djmepvbi2#

您可以使用:

SELECT [name]
FROM [student]
WHERE [grant] = (SELECT max([grant]) FROM [student])
0kjbasz6

0kjbasz63#

如果只有一个学生有最高补助金,则以下代码可能是正确的:

select top (1) name
    from student s
    order by grant desc;

如果您有两个或两个以上的学生获得相同的助学金,您应填写以下内容:

select * from
(
select 
id,
name,
Dens_Rank() over (order by grant desc) student_rank
)temp where temp.student_rank=1
yruzcnhs

yruzcnhs4#

请在下面查询-
从rownum<2 order by grant desc的学生中选择*;

相关问题