使用sql计算已预订的总金额和已收取的总金额
我想显示度假村id、度假村名称、每个度假村的预订数量以及在每个度假村收取的总金额。为此,我有一段代码如下:使用sql计算已预订的总金额和已收取的总金额,sql,oracle,Sql,Oracle,我想显示度假村id、度假村名称、每个度假村的预订数量以及在每个度假村收取的总金额。为此,我有一段代码如下: select r.resortid, r.resortname, count(b.bookingid) as totalbooking, sum(b.totalcharge) as totalamount from resort r inner join booking b on r.resortid = b.resortid group by b.resortid orde
select r.resortid, r.resortname, count(b.bookingid) as totalbooking, sum(b.totalcharge) as totalamount
from resort r inner join booking b
on r.resortid = b.resortid
group by b.resortid
order by b.resortid;
但是这段代码给出了一个错误,声明“不是一个表达式分组”。请帮我度过难关,并提前感谢 只需添加其他未聚合的列:
select r.resortid, r.resortname,
count(b.bookingid) as totalbooking,
sum(b.totalcharge) as totalamount
from resort r inner join
booking b
on r.resortid = b.resortid
group by r.resortid, r.resortname
order by r.resortid;
请注意,groupby
列与select
中的未聚合列相匹配。特别是,分组依据
和排序依据
使用r.restorid
,而不是b.restorid
您还可以使用聚合函数:
select r.resortid, max(r.resortname) as resortname,
count(b.bookingid) as totalbooking,
sum(b.totalcharge) as totalamount
from resort r inner join
booking b
on r.resortid = b.resortid
group by r.resortid
order by r.resortid;