Sql 从总数中找出日期

Sql 从总数中找出日期,sql,mysql,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

我很难找到我的客户在哪一天达到一定的收入门槛

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美元总金额的日期


非常感谢您的帮助。谢谢

类似于拥有子句的东西

按总计>100的客户id从表组中选择客户id,总和(金额)作为总计

我相信您正在寻找一个版本的“运行总数”计算

看看这篇文章。 那里有很多有用的链接


本文中有很多代码,您也可以重用:

我不确定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
选择客户id
,MIN(创建于)作为第一个日期
从(选择客户标识)
,于
,(选择总和(金额)
从[表]t
其中t.CustomerID=[Table].CustomerID
t.u=100
按客户id分组

Hm,我认为只返回总额超过100美元的客户。我需要找到他们达到100美元的确切日期,即,如果客户今天总共有150美元,我需要找到他们超过100美元的日期。谢谢,这帮了大忙。