我无法找到客户达到某个阈值的日期,即他们赚了多少钱。
customer_id | Amount | created_at
---------------------------
1134 | 10 | 01.01.2010
1134 | 15 | 02.01.2010
1134 | 5 | 03.24.2010
1235 | 10 | 01.03.2010
1235 | 15 | 01.03.2010
1235 | 30 | 01.03.2010
1756 | 50 | 01.05.2010
1756 | 100 | 01.25.2010
要确定他们制作的总金额,我会运行一个简单的查询:
SELECT customer_id, SUM(amount)
FROM table GROUP BY customer_id
但我需要能够找到例如客户达到总金额100美元的日期。
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
杰西,
我相信您正在寻找“运行总计”计算的版本。
看一下这篇文章calculate-a-running-total。 那里有许多有用的链接。
本文包含许多您可以重复使用的代码:http://www.sqlteam.com/article/calculating-running-totals。
答案 1 :(得分:0)
有条款
之类的东西SELECT customer_id,SUM(金额)为Total FROM表GROUP BY customer_id有Total> 100
答案 2 :(得分:0)
我不确定MySQL是否支持子查询,所以请稍等一下:
SELECT customer_id
, MIN(created_at) AS FirstDate
FROM ( SELECT customer_id
, created_at
, ( SELECT SUM(amount)
FROM [Table] t
WHERE t.CustomerID = [Table].CustomerID
AND t.created_at <= [Table].created_at
) AS RunTot
FROM [Table]
) x
WHERE x.RunTot >= 100
GROUP BY customer_id