SQL中的复数和
假设我有:SQL中的复数和,sql,ms-access,grouping,aggregation,Sql,Ms Access,Grouping,Aggregation,假设我有: A B andy 10 andy 20 andy 30 andy 40 paul 10 paul 50 ryan 3 。。。我希望结果是: A B C andy 10 10 andy 20 30 andy 30 60 andy 40 100 paul 10 10 paul 50 60 ryan 3
A B
andy 10
andy 20
andy 30
andy 40
paul 10
paul 50
ryan 3
。。。我希望结果是:
A B C
andy 10 10
andy 20 30
andy 30 60
andy 40 100
paul 10 10
paul 50 60
ryan 3 3
什么样的查询将为我实现这一点?将C视为一种累积频率。一种方法。。未经检验的建议。。。在当前行之前,一个子选择汇总匹配的相关值并按顺序排列
SELECT
name as A,
value as B,
( SELECT sum(value) FROM the_table t2 WHERE t2.name=t1.name
AND t2.second_order_field<=t1.second_order_field ) as C
FROM the_table t1
ORDER BY t1.name,t1.second_order_field
一种方法是。。未经检验的建议。。。在当前行之前,一个子选择汇总匹配的相关值并按顺序排列
SELECT
name as A,
value as B,
( SELECT sum(value) FROM the_table t2 WHERE t2.name=t1.name
AND t2.second_order_field<=t1.second_order_field ) as C
FROM the_table t1
ORDER BY t1.name,t1.second_order_field
你的数据库是什么?我在Access工作人们仍然使用Access???不确定窗口函数是否对其起作用,但您可以尝试…也许您可以使用DSum。请参阅此链接。这是我在谷歌上搜索的第一件事。具有讽刺意味的是,MS Access中的DSum比SQL Server中的分析函数存在的时间要长得多。您的数据库是什么?我在Access中工作人们仍然使用Access???不确定窗口函数是否对其起作用,但您可以尝试…也许您可以使用DSum。请参阅此链接。这是我在谷歌上搜索的第一件事。具有讽刺意味的是,MS Access中的DSum比SQL Server中的分析函数存在的时间要长得多。我认为您建议的是二阶字段的唯一ID,这对我来说很好。我认为您建议的是二阶字段的唯一ID,这对我来说很好。