gpt4 book ai didi

mysql - MS Access 查询 SQL 求和函数

转载 作者:行者123 更新时间:2023-11-28 23:54:54 25 4
gpt4 key购买 nike

我正在尝试在 MS Access 中获取我的计数字段的总和。在我的 SQL 中,我希望有一个 sum 字段,它为每一行计算该行计数的总和 + 接下来的 11 行,然后依此类推。

Ref,    Count,      Yearly Sum
------------------------------
1508 3
1507 2
1506 5
1505 7
. .
. .
. .
1412 10
1411 11
1410 8
1409 6
1408 1
1407 6
... ...

所以想象我的查询看起来像上面的查询,我的目标是将第 1508 行的总和值作为从 1508 到 1408(不包括 1408)的计数总和,然后将 1507 的总和值作为从1507 到 1407(再次排除)等等。

我想知道如何解决我的 SQL 以对字段中的前 12 行求和。

最佳答案

您可以使用自 LEFT JOIN 并使用来自您的数据的技巧:

SELECT  *, D.ref - I.ref
FROM data AS D
LEFT JOIN data AS I
ON I.Ref <= D.Ref
AND D.ref - I.ref < 100 /* 100 means 12 months here. for example - 1508 - 1408 = 100; < 100 means last 12 months */
ORDER BY D.ref DESC, I.ref DESC

100 这里的值是魔数(Magic Number),将为您定义窗口,基于您的 ref 列的 12 个月的窗口(假设 ref 列是一个整数)。您可以在此处看到扩展数据以及 join 将如何识别去年的数据。以下是适合您的解决方案,即年金额:

SELECT  D.Ref, D.[Count], SUM(I.[Count])
FROM data AS D
LEFT JOIN data AS I
ON I.Ref <= D.Ref
AND D.ref - I.ref < 100 /* 100 means 12 months here. for example - 1508 - 1408 = 100; < 100 means last 12 months */
GROUP BY D.Ref, D.[Count]
ORDER BY 1 DESC ;

希望它有意义。

关于mysql - MS Access 查询 SQL 求和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31959605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com