我有一张简单的桌子。
Date | Revenue
5/1 12
5/2 25
5/3 93
.
.
11/15 47
我正在尝试编写一个返回两列的查询。第一列是日期,每天,与原始表一样。第二列是30天收入,它是过去30天内原始表格中“收入”列的总和,以显示的日期结束。总结时有很多重叠。提前谢谢!
答案 0 :(得分: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;
答案 1 :(得分:0)
您可以使用subqueries执行此操作。 E.g。
SELECT outer.date, (SELECT SUM(inner.revenue)
FROM table inner
WHERE inner.date > outer.date-30) AS thirtydayrevenue
FROM table outer
答案 2 :(得分:0)
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;