2017-07-31 40 views
1

我期待通過總結每週值來創建SQL中的滾動平均值。我的問題是,我總結的範圍是年周,因此不被視爲整數值,所以我有問題設置範圍來總結。例如:年度總和(字符串)Vertica SQL

select distinct 
origin, 
reportweek, 
t2.date as 'Date', 
sum(number1) over (order by t2.date range between interval '30 days' preceding and current row) as 'MovingAvg' 

from table1 t1 
left join table2 t2 on reportweek = yearweek 

group by reportweek,origin,number1,t2.date; 

此查詢的工作,因爲t2.date是一個實際的日期,但我想總結了reportweek代替,其中報告本週看起來像「2017-20」例如(字符串)。我期待在過去4周內創造一個移動平均線。

請讓我知道,如果我可以提供任何其他信息!

在此先感謝!

我使用Vertica的SQL

回答

0

您需要在 '2017-20' 字符串轉換爲使用類似日期:

... OVER(ORDER BY TO_DATE(reportweek, 'YYYY-WW') 
     RANGE BETWEEN INTERVAL '4 weeks' PRECEDING AND CURRENT ROW)... 

注意:在TO_DATE您可以使用

  • WW(第一週開始於本月的第一天)或
  • IW(ISO周:第一個星期四新的一年在第1周)

這取決於你的報告周是如何定義的。

+0

Thankyou解決了錯誤! –