【发布时间】:2012-10-18 22:33:18
【问题描述】:
可能重复:
Oracle SQL - How to Retrieve highest 5 values of a column
我有一个简单的问题要问对 SQL 有任何了解的人,但由于我是新手,虽然我尝试了许多不同的方法,但我似乎永远无法正确地获取语法。我只想显示 MAX 结果的平均酒店。目前它单独显示所有酒店的平均值。这是我可以使用 MAX 功能的东西吗?我正在使用甲骨文
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;
【问题讨论】:
-
MAX功能会给你最高的价值,也就是最高的价格。我不明白您所说的“平均酒店是 MAX 结果”是什么意思。
-
请您详细说明
I want to display only the average hotel which is the MAX result.的含义?如果可能,请包括示例输入数据和您希望/期望的输出示例。 -
对不起,我措辞不佳。目前该查询显示 3 家不同酒店的平均房价。我希望查询返回 3 个中每间酒店客房平均价格最高的酒店。
-
@danboy - 最高和平均术语通常是相互排斥的。假设三个酒店
A, B, C的价格为150.00, 169.00, 180.00。 平均价格是~166.33。它们都没有“平均”价格。但是酒店C的价格最高:180.00。那么“最高平均价格”是什么意思。如前所述,数据样本确实有助于澄清问题。