我可以使用下面的代码获取每周的总条目数。
select week(date_created) as week, count(distinct tag_code) as Total_This_Week
from entries
where date_created between '2000-01-01' and '2020-01-01'
group by week;
但是我需要得到的是如下所示的 total_last_6_weeks
列,它是前 6 周的总和,因此第 6 周的 total_Last_6_weeks
是“370”加起来(56+45+85+34+85+65)。这必须每周发生,因此对于第 9 周,它必须将前 6 周相加。我尝试过的一切似乎都不起作用。
+-----+-----------------+--------------------+
| week| Total_This_Week | total_Last_6_Weeks |
+-----+-----------------+--------------------+
|__0__|_______81________|_______ 122________ |
|__1__|_______65________|________188________ |
|__2__|_______85________|________145_________|
|__3__|_______34________|________205_________|
|__4__|_______85________|________189_________|
|__5__|_______45________|________112_________|
|__6__|_______56________|________370_________|
|__7__|_______32________|________518_________|
|__8__|_______34________|________121_________|
|__9__|_______45________|________224_________|
+-----+-----------------+--------------------+
最佳答案
在 SQL Server 或 Oracle 中,您可以将 date_created
滞后六周并使用
over (partition by ...)
获得累计总和,而差额将为您滚动提供 6 周的总和。 我知道在 MySQL 中你可以通过使用变量来做到这一点,因为分区和分区并不直接存在。以下是如何进行的简要总结:
关于mysql - 如何在mysql中获取本周前6周的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10849965/