[英]T-SQL - Calculate Average for every 4 month sequentially
我有下表:
Column1 Date Data Column2 Avg
Test1 01/01/2019 1 2
Test1 01/20/2019 2 3
Test1 01/23/2019 3 4
Test1 02/20/2019 4 3
Test1 03/20/2019 5 1
Test1 04/20/2019 6 2
Test1 05/20/2019 7 0
Test1 06/20/2019 8 1
Test1 07/20/2019 9 1
Test1 08/20/2019 10 2
Test1 09/20/2019 11 3
Test1 10/20/2019 12 4
Test1 01/01/2020 13 6
Test1 02/01/2020 14 8
Test1 03/01/2020 15 9
Test1 04/01/2020 16 1
我需要在Temp表的select語句中的列中創建一個稱為Avg的附加列,該列將按順序從Column2中獲取值並將其除以(每4個月的數據平均數除以30)。 因此,例如
等等。
試試這個小提琴 :
select f1.*,
case when f3.Average30=0 then null else f1.Column2 / f3.Average30 end as Avg
from mytable f1
outer apply
(
select avg(cast(f2.Data as decimal))/30.0 as Average30
from mytable f2
where f2.MyDate between f1.Mydate and EOMONTH(DATEADD(MONTH, 3, f1.MyDate))
) f3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.