簡體   English   中英

計算前7行SQL的平均值

[英]Calculate averages of previous 7 rows SQL

考慮從存儲過程返回的以下結果集:

在此處輸入圖片說明

IHD列的目標是對前6行(天)進行計算,以確定存儲過程中的IHD值。

在這種情況下,只有從第7行開始才有IHD值,因為計算需要考慮前6天的期末余額,包括當日(第7天)並計算平均值。 基本上,它需要使用行1到7作為行的7 IHD值。 然后,要計算第8行的IHD值,需要使用第2到8行。

我看過SQL LAG函數,但這只允許我跳至上一行,而且我不確定我是否能夠在平均多個以上的自引用CTE中成功使用LAG函數。前一行是必需的。

我應該如何處理這種情況?

在之間使用ROWS BETWEEN 沒有消耗性的示例數據和預期的結果,我只能提供偽SQL,但這將使您走上正確的道路:

AVG({Your Column}) OVER ([PARTITION BY {Other Column}] ORDER BY {Column To Order BY}
                         ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)

顯然,如果不需要,請用大括號( {} )裝回零件,並卸下括號( [] )的零件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM