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美元的日期。谢谢,这帮了大忙。