问题标签 [cumulative-sum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3371 浏览

sql - 永久加权平均成本计算 SQL Server 2008

我想计算库存的永久加权平均成本。我试图了解以下链接 Inventory Average Cost Calculation in SQL的解决方案, 但无法获得它,这对我来说很复杂。

这是我的数据库详细信息。

我想使用以下公式计算每次购买后的加权平均成本

请问有什么建议吗?

0 投票
1 回答
2654 浏览

clojure - 如何制作一个累积序列?

假设我有一个惰性序列,如下所示:

现在,我想生成s如下的累积和序列:

我怎样才能做到这一点?我尝试的是使用atom并累积总和(变异)这是生成累积序列的唯一方法还是有更好的方法来做到这一点?

注意:上述累计金额仅为示例。源序列可以是其他序列。所以我不能使用公式:s(n) = n(n+1)/2

0 投票
6 回答
2621 浏览

c# - 使用 Linq Aggregate 或 ForEach 更新运行总计的属性

我有一个具有整数属性的类。我有一个要在图表应用程序中使用的列表。我想将此属性显示为累积总数,同时保留所有其他类信息。

让我们称这个类为 ProgressMeasurement,属性是OutstandingItems。有什么方法可以使用聚合函数来完成这个吗?

例如:

即我想将bOutstandingItems 值更新为当前的运行总计。

干杯

0 投票
2 回答
318 浏览

reporting-services - 删除 SSRS 报告组中的冗余值

我正在使用以下数据集开发 SSRS 报告。“期间”有一个过滤器。它是一个多选过滤器。数据按“帐户”字段分组。我需要显示每个组的总费用(这很容易)。我还需要在同一组级别显示“预算”。问题是预算数据是多余的——见下文。

假设第一组(Account=100 AND Period=201301)Sum([Budget])将生成 200,这是不正确的。如果用户从过滤器中仅选择一个期间,我可以使用平均功能。如果他们选择多个值(例如 201301,201302),则平均值将为 (100+100+150+150)/4=125,这是错误的,因为它必须是 100+150=250。我不想在返回的数据集中的所有行中取平均值。

那么,我该如何编写表达式来实现这一点呢?一个肮脏的解决方法是消除预算列中的冗余值,这样我就可以安全地使用而Sum([Budget])不必担心重复。更新后的数据集如下所示:

请对任何一种方法提出建议。谢谢你。

0 投票
1 回答
584 浏览

macos - 每个在 CUDA 中运行的结果不同

接下来我在 cuda 中编程:

  1. 我得到一个带有图像值的矩阵(d_Data)
  2. 我将矩阵复制到共享内存(平铺)中
  3. 我得到一个基本的像素差异 (pixel(i)-pixel(i+1)) (d_diff)
  4. 如果差异是特定值,例如 0,则在 d_diff 中找到数字 0 的每个位置的矩阵 (d_A) 中设置数字 1。这是为了能够得到原始差异矩阵中0的频率。
  5. 并行累积和。
  6. 频率结果转到频率向量。

一步一步检查,一切都按预期进行,直到累积总和。当我启动代码时,软件计算的值为 104347,但有时从 CUDA 我得到一个 nan 结果,其他时候我得到任何数字,例如 2425。非常奇怪的是,如果我坚持运行内核 20 或 30 次,该值变为预期的 104347 :S。

我正在使用每个矩阵:

所以我不明白为什么当我运行足够多的时间时代码越来越接近正确的结果。顺便说一句,当达到正确的值时,无论我运行多少次代码,它都不再移动。

编码:

欢迎任何想法:D

0 投票
5 回答
1323 浏览

sql - 在不使用临时表的情况下排序并将运行总计应用于同一列

我的表的表示:

我需要对我的表进行排序SalesSaleAmount然后选择运行总数SaleAmount不大于 X的所有记录。

为此,我目前正在使用一个临时表来首先对记录进行排序,然后选择运行总计小于或等于 X 的记录(在此示例中为 10)。

有没有一种方法可以让我在不使用临时表的情况下先订购我Sales的桌子?

0 投票
2 回答
587 浏览

r - Select consecutive date entries

I have updated the question, as a) i articulated the question not clearly on the first attempt, b) my exact need also shifted somewhat.

I want to especially thank Hemmo for great help so far - and apologies for not articulating my question clearly enough to him. His code (that addressed earlier version of problem) is shown in the answer section.

At a high-level - i am looking for code that helps to identify and differentiate the different blocks of consecutive free time of different individuals. More specifically - the code would ideally:

  • Check whehter an activity is labelled as "Free"
  • Check whether consecutive weeks (week earlier, week later) of time spent by the same person where also labelled as "Free".
  • Give the entire block of consecutive weeks of that person that are labelled "Free" an indicator in the desired outcome column. Note that the lenght of time-periods (e.g. 1 consec week, 4 consec weeks, 8 consec weeks) will vary
  • Finally - due to a need for further analysis on the characteristics of these clusters, different blocks should receive different indicators. (e.g. the march block of Paul would have value 1, the May block value 2, and Kim's block in March would be have value 3)

Hopefully this becomes more clear when one looks at the example dataframe (see the desired final column)

Any help much appreciated, code for the test dataframe per below.

Many thanks in advance,

W

Example (note that the last column should be generated by the code, purely included as illustration):

Code for dataframe:

0 投票
1 回答
678 浏览

sql - SQL WHILE 语句错误“列前缀与查询中使用的表名或别名不匹配”

我正在尝试运行以下 SQL 语句并收到以下消息

列前缀“timInvtTran”与查询中使用的表名或别名不匹配。

基本上我想要做的是在每次库存交易后获得最终的手头数量(QOH)。对此的一个假设是,当对 TranQty 求和时,您将得到结果 QOH。我正在尝试循环数据并添加 TranQty 的运行总数,根据定义,这将是 QOH。我将我的 QOH 变量命名为 @currQOH 。

我知道问题出在我的 SET 语句中,但我不知道为什么会这样。

作为旁注,我是否走在正确的道路上以获取 TranQty 的运行总数?我不想写入数据库,所以我不想为我的运行总计创建新表。我研究了高低,找不到任何东西。

任何帮助将不胜感激。

顺便说一句,PI 日快乐!

0 投票
3 回答
479 浏览

mysql - 计算一个人的连续出现次数 - SQL

我有一张像这样的桌子:

我想计算每个人在每个点上看到事件的次数,例如:

我猜我不能在 SQL 中做到这一点?如果没有,您能否非常清楚我如何在 SAS 中执行此操作(或任何合适的方式),因为我是新手!

(仅供参考,这使我能够区分每个事件之前或之后发生的行 - 即按 Event = 空白过滤,在第一个事件之前发生任何 0,之后发生任何 1,等等。可能有一种更简单的方法来做这个。)

谢谢!

0 投票
1 回答
3848 浏览

database - Access 2010 - 查询显示多条记录的运行总计,删除旧记录并在每行添加新记录

我有一个 Access 数据库,它跟踪每个员工在每个支付期间使用的小时数。

我需要一个查询,让我能够及时回顾过去 25 个支付期的总数,这是根据每个员工的前 26 个支付期的每一个计算得出的。这是一个滚动总计,本质上,必须逐行忽略 26 个(或更多)支付期的记录。我有 5 年的记录,很遗憾有必要保留所有记录,并且能够查看每个员工的 26 个支付期的运行总计是多少以及在特定的支付期限。

基本上,我们正在查看每个员工总共51条记录——查询实际显示的第一个支付期是26 个支付期之前;它的运行总数基于该支付期内发生的情况加上前 25 次。

表:
HoursIDEmployeeIDPayPeriodIDHoursUsed
PayPeriodIDPayPeriodEndDate

查询结果(已经工作):
EmployeeIDTotalOfHoursUsedLast26PP(此查询请求一个日期倒计时)

我需要的查询结果:
EmployeeIDPayPeriodIDHoursUsed、[使用的总小时数,基于紧接在此 PP 之前的 25 个 PP ]

我一直在搞乱 DSum,但我不知道如何让它计算最后 26 个 PP,计算我需要的 PP,一次为一名员工,每个工资期分别计算。

明确一点:我需要能够在 2009 年或其他时间回顾并运行此查询以获取 26 个支付期;在 Excel 中,对于一位员工,我们做了如下所示的操作:

Line32_HoursUsedLast26PP = Line32_HoursUsedThisPP + Line31_HoursUsedLast26PP - Line4_HoursUsedThisPP

结果类似于:

2011-5 - 338.8
2011-6 - 398.5 2011-7
- 428.7
2011-8 - 442.5
2011-9 - 451 2011-10
- 451
2011-11 - 451
2011-12 - 451
2011-13 - 451
2011-1
2011-15 - 451
2011-16 - 452.4
2011-17 - 453.1 2011-18
- 454.3
2011-19 - 454.3 2011-20
- 455
2011-21 - 456.1
2011-22 - 460.2
848 2011-23 -
411
2011-25 - 480
2011-26 - 480 2012-01
- 453.2
2012-02 - 381.2
2012-03 - 301.2
2012-04 - 221.2
2012-05 - 141.2
2012-06 - 81.5
2012-07 - 51.3
2012-08 - 37.5
2012-09 - 29
2012-10 - 29
2012-11 - 29
2012-12 - 29
2012-13 - 29
2012-14 - 29
2012-15 - 29
2012-16 - 27.
2012-17 - 26.9
2012-18 - 25.7
2012-19 - 25.7
2012-20 - 25
2012-21 - 23.9
2012-22 - 19.8
2012-23 - 0

如您所见,运行总数上升下降。

这是我用于“查找过去 26 个支付周期的总小时数”查询的实际代码;关于认证等的东西,是因为在任何给定的支付期间,员工可能会在多个认证下记录小时数。

如果不清楚,此查询依赖于名为 Last_26_PP_From_Today 的单独查询:

我还有一个查询,可以切换到从任何特定日期查找最后 26 个支付期:

我在绝望中想到的蛮力方法涉及一系列级联的 Make Table 查询,那时我决定也许这里有人可以提供更清洁的东西。

更新

多亏了 Gord,我现在一切正常,除了我没有看到支付周期数字:

这让我: