Bi 如何实现不同活动时间内的销售额?

有一张订单表
还有一张活动时间表 活动时间不规律 基本上都是几天为一期,有 [活动开始时间]和[活动结束时间]
怎么算出各活动时间内的订单表里的销售额

有帮助的话 采纳一下
可以使用 SQL 查询,结合活动时间表对订单表进行分组统计:
sql

SELECT
  a.activity_start,
  a.activity_end,
  SUM(o.amount) AS total_amount 
FROM activity_table a
LEFT JOIN order_table o ON o.order_time BETWEEN a.activity_start AND a.activity_end
GROUP BY a.activity_start, a.activity_end

这个查询的主要逻辑是:

  • FROM子句 left join 活动时间表和订单表,连接条件是订单时间在活动开始和结束时间之间。
  • GROUP BY 活动开始和结束时间,进行分组。
  • SUM(o.amount) 统计每个分组即每个活动时间区间内的订单金额总和。
  • 这样就能计算出每个不规律的活动时间内的订单金额了。
    你也可以根据需要调整查询,比如加入活动名称等其他信息。
    需要注意的就是活动时间表和订单表之间的连接条件,这个条件是确定订单归属于哪个活动的关键。