每天过去 30 天每天的收入总和

Posted

技术标签:

【中文标题】每天过去 30 天每天的收入总和【英文标题】:Sum of revenue everyday, for last 30 days on each day 【发布时间】:2014-05-16 00:27:46 【问题描述】:

我有一张简单的桌子。

 Date | Revenue
 5/1    12
 5/2    25
 5/3    93
 .
 .
 11/15  47

我正在尝试编写一个返回两列的查询。第一列是日期,每天,就像原始表格一样。第二列是 30-Day-Revenue,它是原始表格中“Revenue”列过去 30 天的总和,以显示的日期结束。当我们求和时有很多重叠。提前致谢!

【问题讨论】:

你用的是什么数据库? 请edit您的问题包含您正在使用的 DBMS 的标签以及您正在使用的 SQL 语句,这会导致“我们求和时有很多重叠”。谢谢。 感谢您阅读我的问题。我只对逻辑感兴趣,而不是确切的查询。我认为使用标准 SQL 中的任何内容都应该没问题。 【参考方案1】:

我有一个替代解决方案(假设您的表名为revenue_table):

SELECT a.Date, SUM(b.Revenue)
FROM revenue_table a, revenue_table b
WHERE b.Date <= a.Date AND b.Date > a.Date - 30
GROUP BY a.Date;

【讨论】:

谢谢!你的逻辑对我帮助最大。感谢您的帮助!【参考方案2】:
SELECT table1.Date, table1.Revenue, Past30DayRevenue = SUM(table2.Revenue)
FROM    insert_your_table_name_here table1
        JOIN insert_your_table_name_here table2 ON DATEDIFF(day, table2.Date, table1.Date) BETWEEN 0 AND 29
GROUP BY table1.Date, table1.Revenue
ORDER BY table1.Date;

【讨论】:

【参考方案3】:

您可以使用subqueries 来执行此操作。例如

SELECT outer.date, (SELECT SUM(inner.revenue) 
                    FROM table inner 
                    WHERE inner.date > outer.date-30) AS thirtydayrevenue
FROM table outer

【讨论】:

我会试试看的!

以上是关于每天过去 30 天每天的收入总和的主要内容,如果未能解决你的问题,请参考以下文章

[转帖]华为2018年收入超阿里腾讯总和,任正非:华为最大问题是赚钱太多

现在每天收入500左右很迷茫,该怎么办?

增加收入的 6 种方式(个人赚取收入的本质是:出售时间)good

KeyMob移动广告聚合平台每天收入多一点

一位程序员的迷茫:每天5:30准时下班,月薪10000+

使用数据块计算过去 7 天每天的不同用户