如何在SQL中使用MAX函数?

如何在SQL中使用MAX函数?,sql,max,Sql,Max,这是我的疑问: SELECT Cottage15.CNUM,Cottage15.Rent,Assignment15.Hours FROM Cottage15 INNER JOIN Assignment15 ON Cottage15.CNUM=Assignment15.CNUM ORDER BY Assignment15.AID; 它可以工作,但我不知道如何将Max函数应用于hours?我希望MAX(Assignment15.Hours)可以工作 此查询显示所有行,但我只希望它显示某些行,这些行

这是我的疑问:

SELECT Cottage15.CNUM,Cottage15.Rent,Assignment15.Hours
FROM Cottage15
INNER JOIN Assignment15
ON Cottage15.CNUM=Assignment15.CNUM
ORDER BY Assignment15.AID;
它可以工作,但我不知道如何将
Max
函数应用于
hours
?我希望
MAX(Assignment15.Hours)
可以工作


此查询显示所有行,但我只希望它显示某些行,这些行根据小时字段具有最高的数字。

我想这就是您想要的

SELECT Cottage15.CNUM,Cottage15.Rent,Assignment15.Hours
FROM Cottage15
INNER JOIN Assignment15
ON Cottage15.CNUM=Assignment15.CNUM
WHERE Assignment15.Hours = (SELECT MAX(Assignment15.Hours) FROM Assignment15)
ORDER BY Assignment15.Hours

必须添加组聚合才能应用Max函数

 SELECT Cottage15.CNUM,Cottage15.Rent,Max(Assignment15.Hours)
 FROM Cottage15
 INNER JOIN Assignment15
 ON Cottage15.CNUM=Assignment15.CNUM
 group by Cottage15.CNUM,Cottage15.Rent
 ORDER BY Assignment15.AID;

如果您想获得每套
Cottage15.CNUM和Cottage15.Rent的

然后使用
max(Assignment15.Hours)
按Cottage15.CNUM、Cottage15.Rent分组:

SELECT Cottage15.CNUM,Cottage15.Rent,MAX(Assignment15.Hours)
FROM Cottage15
INNER JOIN Assignment15
ON Cottage15.CNUM=Assignment15.CNUM
GROUP BY Cottage15.CNUM,Cottage15.Rent
但是,如果您想在整个结果集中获得
Cottage15.CNUM和Cottage15.Rent
,它们具有
max(Assignment15.Hours)
,那么您可以通过以下方式获得:

SELECT Cottage15.CNUM,Cottage15.Rent,Assignment15.Hours
FROM Cottage15
INNER JOIN Assignment15
ON Cottage15.CNUM=Assignment15.CNUM
WHERE Assignment15.Hours = ( SELECT MAX(Assignment15.Hours)
                             FROM Cottage15
                             INNER JOIN Assignment15
                             ON Cottage15.CNUM=Assignment15.CNUM
                            )

你需要同时使用
groupby
。MAX是一个聚合函数,你必须创建要聚合的组。当我运行此操作时,它仍然显示所有数据记录(行),我需要它只显示小时数字段中数字最高的记录。怎么样?对不起,如果不知道你的数据是什么意思,很难说。如果你能告诉我你想要什么,我真的会帮你的,因为查询没有任何作用。当我运行查询时,它没有加载任何记录,它显示了数据库中的所有15条记录。它们被分类了。看起来很棒,但是我只展示了5号唱片。5是我数据库中的最大值,所以我想显示有限的记录。它没有这样做,我想你需要添加一个where子句,看起来更清楚一点,但当我运行它时它没有执行:*(为什么它没有执行!!???给出一个适当的反馈,你说没有执行是什么意思?它给出了错误或没有给出预期的输出?你只是在查询的末尾漏掉了一个分号
@rkail欢迎你,如果它有效并且有帮助,你可以接受它。点击答案左侧的复选标记