如何根据另一个 avg(query) 的结果在 SQL 中进行查询

问题描述

我想知道是否有人可以帮忙解决这个问题,我是 sql 新手,我正在尝试这样做。

我有以下 3 个表/列

Bookings(roomID,bookingID,guestID) 
Room(rooCost,roomID) 
Guests(name,lname ext)

我想我们可以让 Guest 表单独完成这项任务。 所以本质上,我需要从不同的表/列组合中提取 avg(roomID) 以及这个特定房间的成本。

请原谅我下面的伪代码:)

现在,我想知道

    avg room(Booking.roomID) rented by all guests and its related cost(Room.roomCost)

所以我猜是这样的:

query the avg(booking.roomID) (btw this would give me an int 10)
then
query the cost of room(10) from Room.roomCost

我尝试了这么多组合!简直难以置信!!一旦我快到了,我想,但我从一个 20 行的表格中得到了 +400 行的响应。??

感谢任何帮助。 非常感谢

解决方法

如果您想获得房间明智的平均成本,您可以使用以下查询:

select roomid,avg(roocost) from room
group by roomid

如果您想获得任何客人租用的房间的平均值,请使用以下查询:

select roomid,avg(roocost) from room
where roomid in (select roomid from bookings)
group by roomid

计算客房平均成本:

   select guestid,roomid,avg(roocost) from room r inner join booking b
   on r.roomid=b.roomid
   group by guestid,roomid

计算客人明智的房间平均成本(带客人姓名):

   select name guestname,guestid,avg(roocost) from room r inner join booking b
   on r.roomid=b.roomid
   inner join guests g on g.guestid=b.guestid 
   group by name,roomid

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...