问题描述
我想知道是否有人可以帮忙解决这个问题,我是 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