Sql 平均房价高于所有酒店所有客房平均价格的酒店

Sql 平均房价高于所有酒店所有客房平均价格的酒店,sql,Sql,我有一个关于酒店、房间、预订和客人的数据库 我只需要得到平均价格高于所有酒店所有房间平均价格的酒店的平均价格。 下面是我的数据 Hotel (hotelNo,hotelName,hotelAddress) Room (hotelNo,roomNo,type,price) Guest (guestNo,guestName,guestAddress) Booking (hotelNo,guestNo,dateFrom,dateTo,roomNo) 这是我的疑问 SELECT ( SELECT

我有一个关于酒店、房间、预订和客人的数据库 我只需要得到平均价格高于所有酒店所有房间平均价格的酒店的平均价格。 下面是我的数据

Hotel (hotelNo,hotelName,hotelAddress)
Room (hotelNo,roomNo,type,price)
Guest (guestNo,guestName,guestAddress)
Booking (hotelNo,guestNo,dateFrom,dateTo,roomNo)
这是我的疑问

 SELECT (
  SELECT hotelName
  from hotel
  where hotel.hotelNo = room.hotelNo
 ) AS "Hotel Name",
 AVG(price) t
 FROM room 
 where t<(SELECT AVG(price)from room)
  Group by hotelNo

尝试以下方法:

select hotelName
from hotel
where hotelNo in ( 
  select hotelNo 
  from Room
  group by hotelNo
  having avg( price ) > select avg( price ) from Room 
)

使用TDQD-测试驱动的查询设计构建您的查询

每家酒店客房的平均成本 所有酒店客房的平均成本 客房平均成本高于客房总体平均成本的酒店 酒店详情。。。 还有其他方法可以编写最后一个查询


这是TDQD,因为您可以测试每个阶段以确保获得预期结果,从而建立最终复杂查询正确性的信心。如果出现问题,如果逐步开发了查询,则可以减少撤消操作。

问题是什么?如果您的查询失败,它是如何失败的?您使用的是什么数据库系统?
SELECT HotelNo, AVG(Price) AS AvgPrice
  FROM Room
 GROUP BY HotelNo;
SELECT AVG(Price) AS AvgPrice
  FROM Room;
SELECT HotelNo
  FROM Room
 GROUP BY HotelNo
HAVING AVG(Price) > (SELECT AVG(Price) FROM Room)
SELECT HotelNo, HotelName, HotelAddress
  FROM Hotel AS H
  JOIN (SELECT HotelNo
          FROM Room
         GROUP BY HotelNo
        HAVING AVG(Price) > (SELECT AVG(Price) FROM Room)
       ) AS E
    ON H.HotelNo = E.HotelNo