SQL-按组汇总乘法结果

时间:2020-05-23 18:50:31

标签: sql database join group-by

我有下表:

订单(OID,计数,产品ID,TableNr)

表格(TableNr,名称,编号)

产品(产品ID,奖品)

现在我想计算每张桌子赚了多少钱。我认为要做到这一点,我必须对Orders.TableNr进行分组。但是如何将Products.Prize和Orders.Count相乘,然后将结果汇总到组中?

1 个答案:

答案 0 :(得分:1)

您正在描述联接和聚合:

select o.tableNr, sum(o.count * p.prize) totalEarned
from orders o
inner join products p on p.productId = o.productId
group by o.tableNr

如果还要显示表信息(例如表名),则可以添加另一个join

select t.tableNr, t.name, sum(o.count * p.prize) totalEarned
from table t
inner join orders   o on o.tableNr   = t.tableNr
inner join products p on p.productId = o.productId
group by t.tableNr, t.name

请注意,table是一个SQL关键字,因此不是表名的好选择。