Sql 找到最大值

Sql 找到最大值,sql,oracle,top-n,Sql,Oracle,Top N,可能重复: 我有一个简单的问题想问一个对SQL一无所知的人,但是因为我是一个新手,虽然我尝试了很多不同的方法,但我似乎永远都不能得到正确的语法。我只想显示平均酒店,这是最大的结果。目前,它单独显示所有酒店的平均值。这就是我可以使用MAX函数的原因吗?我正在使用oracle SELECT HOTEL.H_NAME "HOTEL NAME", ROUND(AVG (R_PRICE), 1) "AVERAGE ROOM PRICE" FROM ROOM JOIN HOTEL ON HOTEL.HOT

可能重复:

我有一个简单的问题想问一个对SQL一无所知的人,但是因为我是一个新手,虽然我尝试了很多不同的方法,但我似乎永远都不能得到正确的语法。我只想显示平均酒店,这是最大的结果。目前,它单独显示所有酒店的平均值。这就是我可以使用MAX函数的原因吗?我正在使用oracle

SELECT HOTEL.H_NAME "HOTEL NAME", ROUND(AVG (R_PRICE), 1) "AVERAGE ROOM PRICE"
FROM ROOM JOIN HOTEL ON HOTEL.HOTEL_NO = ROOM.HOTEL_NO
WHERE HOTEL.H_NAME = 'Shangra_La'
OR HOTEL.H_NAME = 'Hilton'
OR HOTEL.H_NAME = 'Sheraton'
GROUP BY HOTEL.H_NAME
ORDER BY HOTEL.H_NAME;

在Oracle中,可以使用
ROWNUM
伪列

SELECT * FROM
(
    SELECT 
        HOTEL.H_NAME "HOTEL NAME", 
        ROUND(AVG (R_PRICE), 1) "AVERAGE ROOM PRICE" 
    FROM
        ROOM 
            JOIN HOTEL ON HOTEL.HOTEL_NO = ROOM.HOTEL_NO 
    WHERE HOTEL.H_NAME IN ('Shangra_La','Hilton','Sheraton')
    GROUP BY HOTEL.H_NAME 
) v
WHERE ROWNUM = 1
ORDER BY "AVERAGE ROOM PRICE" DESC;

MAX函数将为您提供最高的值,即最高的价格。我不明白你所说的“平均酒店是最大的结果”是什么意思。请你详细说明一下
我只想显示平均酒店是最大的结果。
的意思是什么?如果可能的话,包括输入数据的例子和你想要/期望的输出的例子。当前,查询显示3家独立酒店的平均房价。我希望查询返回3个房间中每个房间平均价格最高的酒店。@danboy-术语“最高”和“平均”通常是互斥的。假设三家酒店
A、B、C
的价格分别为
150.00、169.00、180.00
。平均价格为~
166.33
。它们都没有“平均”价格。然而,酒店的
C
价格最高:
180.00
。那么,“最高平均价格”是什么意思呢。如前所述,数据示例确实有助于澄清问题。
orderby
子句应该应用于子查询,如果您希望获得价格的最大值。否则您只需先订购一排。啊,这很有道理,非常感谢!