使用来自多个表的 group by 聚合函数

Posted

技术标签:

【中文标题】使用来自多个表的 group by 聚合函数【英文标题】:Use aggregate functions with group by from several tables 【发布时间】:2021-09-26 01:45:39 【问题描述】:

我有以下表格允许订阅者通过应用程序销售产品

订单表

OrderId Date
1 2021-07-10
2 2021-08-24

审批表

ApprovalId OrderId Status SellerId
1 1 Accepted 10
2 1 Rejected 20
3 2 Accepted 30

物品表

ItemId OrderId Price Qty SellerId
1 1 620$ 1 10
2 1 150$ 2 10
3 1 410$ 1 20
4 2 220$ 1 30

我想要的是显示> 只接受订单的人

的收入收入
Date Sales Seller_Part 90% Net_Sales 10%
2021-07-10 770$ 693$ 77$
2021-08-24 220$ 198% 22$

我尝试使用 group by 聚合函数,但结果还包括拒绝订单

【问题讨论】:

【参考方案1】:
select o.date
  ,sum(i.price * i.qty) sales 
  ,sum(i.price * i.qty) * 0.90 Seller_Part90% 
  ,sum(i.price * i.qty) * 0.10 Net_Sales10% 
from Order o
join Approval a 
  on o.orderId = a.OrderId
  and a.status= 'Accepted'
join Items i
 on a.sellerid = i.sellerid  
 and a.orderid = i.orderid
group by o.date

【讨论】:

正确答案,谢谢四位的帮助:)

以上是关于使用来自多个表的 group by 聚合函数的主要内容,如果未能解决你的问题,请参考以下文章

使用 GROUP BY 和聚合函数的多个 INNER JOIN

使用 group by 或聚合函数删除变量

列的原因在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中[重复]

group by

pandas使用groupby函数按照多个分组变量进行分组聚合统计使用agg函数计算分组的多个统计指标(grouping by multiple columns in dataframe)

mysql 从聚合函数group by到sql_mode