【问题标题】:SQL - Sum Up Results Of A Multiplication By GroupSQL - 按组总结乘法的结果
【发布时间】:2020-09-10 14:17:14
【问题描述】:

我有以下表格:

订单(OID、Count、ProductID、TableNr)

表格(表格编号、名称、编号)

产品(ProductID、奖品)

现在我想计算每张桌子的收入。我认为要做到这一点,我必须按 Orders.TableNr 分组。但是如何将 Products.Prize 与 Orders.Count 相乘,然后在组内总结此结果?

【问题讨论】:

  • 显示示例数据。这样会更容易回答您的问题。
  • 请不要要求我们编写您的代码。展示你能做什么。请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出您可以给出的最少代码,即您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask

标签: sql database join group-by


【解决方案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 关键字,因此不是表名的好选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 2021-04-06
    • 2014-08-17
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    相关资源
    最近更新 更多