滚动 window SQL 365 天
Rolling window SQL for 365 days
这里是第一个问题。我正在尝试计算过去 365 天 SQL 中的滚动数。我有以下公式:
Select Count (*) ID
From HSE_Meldingen
Where ((Bedrijf IN ('BE Civiel','Be Mechanisch','BE Overig','BE Vijzel') And Datum_incident > DATEADD(DAY,-365,GETDATE()) and Soort_Melding = 'Letselongeval EHBO met doktersverzorging')
现在我必须添加一些额外的东西。我希望这个公式回顾过去 5 年中的每一天 365 天。因此,计算 365 天期间的滚动 window,回溯 5 年。
我希望我已经解释得足够清楚了。
我会创建一个日历 table(您可以找到很多创建日历的示例),然后将此 table 加入您的 HSE_meldingen table。
例如
Select d.theDate, Count (*) ID
From AllDates d
LEFT JOIN HSE_Meldingen m
ON m.HSE_Meldingen BETWEEN DATEADD(DAY,-365,d.TheDate) AND d.theDate
AND m.Bedrijf IN ('BE Civiel','Be Mechanisch','BE Overig','BE Vijzel')
and m.Soort_Melding = 'Letselongeval EHBO met doktersverzorging'
Where d.theDate > DATEADD(DAY,-365,GETDATE())
GROUP BY d.theDate
这里是第一个问题。我正在尝试计算过去 365 天 SQL 中的滚动数。我有以下公式:
Select Count (*) ID
From HSE_Meldingen
Where ((Bedrijf IN ('BE Civiel','Be Mechanisch','BE Overig','BE Vijzel') And Datum_incident > DATEADD(DAY,-365,GETDATE()) and Soort_Melding = 'Letselongeval EHBO met doktersverzorging')
现在我必须添加一些额外的东西。我希望这个公式回顾过去 5 年中的每一天 365 天。因此,计算 365 天期间的滚动 window,回溯 5 年。
我希望我已经解释得足够清楚了。
我会创建一个日历 table(您可以找到很多创建日历的示例),然后将此 table 加入您的 HSE_meldingen table。
例如
Select d.theDate, Count (*) ID
From AllDates d
LEFT JOIN HSE_Meldingen m
ON m.HSE_Meldingen BETWEEN DATEADD(DAY,-365,d.TheDate) AND d.theDate
AND m.Bedrijf IN ('BE Civiel','Be Mechanisch','BE Overig','BE Vijzel')
and m.Soort_Melding = 'Letselongeval EHBO met doktersverzorging'
Where d.theDate > DATEADD(DAY,-365,GETDATE())
GROUP BY d.theDate