从SUM中查找日期

时间:2011-01-07 16:09:46

标签: sql mysql

我无法找到客户达到某个阈值的日期,即他们赚了多少钱。

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美元的日期。

非常感谢任何帮助。谢谢!

3 个答案:

答案 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