首页 > 解决方案 > 运行总计以查找第一个日期达到的总和按组划分

问题描述

希望有人可以提供帮助,我有一个查询,它执行交易的总和并输出达到总和的日期:

FROM (SELECT * FROM transactions WHERE t_status='paid' 
AND event_id=12345
ORDER BY date_paid) AS base,
         (SELECT @sum := 0) init
WHERE (@sum := @sum + amount - refund_amount - fee) >= 20

这很好用!唯一的问题是它只适用于单个事件 id,我想要为每个事件 id 支付的日期,其中总和大于或等于 20,我尝试了一些变体,包括子查询或连接但没有运气,例如:

SELECT min(a.date_paid),b.event_id FROM
(SELECT  date_paid,event_id
FROM     (SELECT * FROM transactions WHERE t_status='paid' 
ORDER BY date_paid) AS base,
         (SELECT @sum := 0) init
WHERE (@sum := @sum + amount - refund_amount - fee) >= 500) a JOIN events_history b ON a.event_id=b.event_id GROUP BY a.event_id

标签: mysqlsqlaggregate-functionscumulative-sum

解决方案


推荐阅读