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,这对我来说很好。