0

我可以使用下面的代码获得每周的总条目。

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_________| 
+-----+-----------------+--------------------+ 
4

1 回答 1

1

在 SQL Server 或 Oracle 中,您可以延迟date_created六周并使用

    over (partition by ...)

获得累计总和,而差额将为您提供 6 周滚动的总和。我知道在 MySQL 中你可以通过使用变量来做到这一点,因为分区和 over 不直接存在。以下是如何进行的简要总结:

MySQL 中的 ROW_NUMBER、Partition 和 Over

于 2012-06-01T12:43:40.620 回答