如何在SQL中使用MAX函数?

How to use MAX function in SQL?

这是我的查询:

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 and Cottage15.Rent 得到 max(hour) 然后使用 max(Assignment15.Hours)group by 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

但是如果你想得到在整个结果集中有max(Assignment15.Hours)Cottage15.CNUM and Cottage15.Rent那么你可以通过:

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
                            )