【发布时间】:2015-11-22 09:00:34
【问题描述】:
我正在尝试创建一个 SQL 语句来计算我的数据的 6 个月滚动平均值。我正在关注本指南:
SQL Query for 7 Day Rolling Average in SQL Server
但问题是我使用的是 SQL Server 2008,这里的答案是 2012 年。
select
x.*,
avg(dailyusage) over(partition by productid order by productid, date rows between 6 preceding and current row) as rolling_avg
from
(select
productid, date, sum(usagecount) as dailyusage
from tbl
group by productid, date) x
如果有人能帮我把它翻译成 2008 年的术语,我们将不胜感激。
谢谢
【问题讨论】:
-
你的意思是改成2008?不工作?给你一个错误? SQL Fiddle 将其更改为左上角组合中的 2008 即可。
-
@JuanCarlosOropeza SQL Server 2008 中没有用于聚合函数的
ORDER BY -
@Lamak 抱歉,我在 sqlFiddle 上没有看到任何错误。
-
@JuanCarlosOropeza 那是sqlfiddle的问题,但不代表真的可以用
-
@JuanCarlosOropeza SQL Fiddle 实际上是使用虚拟机管理程序在 2014 服务器上运行的,而 2008 选项只是意味着兼容性级别将设置为 100 并且出于某种原因 SQL Server 使用
order by,即使它不应该兼容。 lvl 设置为 100。
标签: sql sql-server-2008