我工作的一个SQL查询的表有两列Amount
,并Date
应返回的总和Amount
列的值,直到达到5000
它也应该返回的值Date
列在该Sum(Amount)
河段5000
的排序条件为Date
例如,我的数据如下 SQL TABLE
ID Amount Date
1 1000 5/5/2014
2 1000 5/1/2014
3 900 5/3/2014
4 1500 5/4/2014
5 2000 5/4/2014
6 2500 5/5/2014
在上表中,金额总计应在按日期排序之后进行计算,并且一旦金额达到5000分,应返回金额及其关联的日期的总计。
排序数据后,它变成如下所示
ID Amount Date
2 1000 5/1/2014
3 900 5/3/2014
4 1500 5/4/2014
5 2000 5/4/2014
1 1000 5/5/2014
6 2500 5/5/2014
查询应返回以下结果
TotalAmount Date
5400 5/4/2014
上述结果是因为总和达到5000
在ID=5 Amount=200 and Date=5/4/2014
我可以知道一种更好的方法来处理它吗 SQL Server
对于SQL Server,您可以使用SUM() OVER()
并获得总和> = 5000的第一行;
WITH cte AS (
SELECT id, date, SUM(amount) OVER (ORDER BY date,id) totalamount
FROM mytable
)
SELECT TOP 1 totalamount, date
FROM cte
WHERE totalamount >= 5000
ORDER BY date, id;
要使用进行测试的SQLfiddle。
问题内容: 我正在使用SQLite,并尝试返回该列中某一列的总数,同时返回所有数据。我不想/不需要对数据进行分组,因为我需要在每个返回的行中都包含数据。 当我包含类似内容时, 它仅返回一行。我需要所有返回的行以及所有条目的总数。 问题答案: 听起来这就是您要寻找的内容: 参见带有演示的SQL Fiddle
问题内容: 如何查询和显示记录直到达到一定数量? 假设您要选择学生,直到学生的总金额达到1000? 加成 如果我想停在500,我会得到记录1和2(190 + 290)。如果我想停在1000,我会得到记录1直到4。 问题答案: SQL表没有“内部”顺序,因此您必须指定一些ORDER BY子句以赋予“直到”短语任何含义。鉴于此,可以使用来自学生ORDER BY xxx LIMIT N的SELECT S
问题内容: 让 假设我要对列表中每个列表的索引元素求和,例如在矩阵列中添加数字以获得单个列表。我假设数据中的所有列表的长度均相等。 如何遍历列表列表而不会出现索引超出范围错误?也许lambda?谢谢! 问题答案: 您可以尝试以下方法: 这里使用的组合和解压的列表,然后根据自己的索引压缩的项目。然后,您可以使用列表推导来遍历相似索引的组,对其进行求和并返回其“原始”位置。 为了更清楚一点,下面是迭代
问题内容: 我想在表格中添加一列并返回总和。我有一个循环,但是没有用。 问题答案: 您可以在MySQL查询中完全处理它: 在PHP代码中,尝试以下操作: 使用PDO(已弃用)
问题内容: 我想从2个不同的表中获得几列的总和(这些表具有相同的结构)。 如果我只考虑一个表,我会写这种查询: 但是,我也想使用表T_BAR中的数据,然后使用查询返回以下列: MONTH_REF SUM(T_FOO.amount1)+ SUM(T_BAR.amount1) SUM(T_FOO.amount2)+ SUM(T_BAR.amount2) 一切都按的值分组。 请注意,给定记录可以在一个表
问题内容: 我已经寻找了一段时间,但找不到该问题的答案(也许我没有搜索正确的术语或其他内容)。基本上,我有一个数据库,每个日期有任意数量的条目。我需要获取包含条目的最近X天的总和(忽略没有条目的天)。我知道如何找到每一天的总和。 假设我有一个名为“ Yield”的表格: 然后,我使用以下查询: 要获取每天的通过/测量的总数,请执行以下操作: 然后,我需要一个查询,该查询可以调用一个日期(例如我称它