【问题标题】:Rolling window SQL for 365 days365天滚动窗口SQL
【发布时间】:2020-09-29 14:33:52
【问题描述】:

这里的第一个问题。我正在尝试计算过去 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 天的滚动窗口,回溯 5 年。

我希望我已经解释得足够好。

【问题讨论】:

  • @a_horse_with_no_name 感谢您的回复。我正在使用 SQL-server,我已经添加了标签。

标签: sql-server select rolling-computation dateadd


【解决方案1】:

我会创建一个日历表(您可以找到很多如何创建的示例),然后将此表加入您的 HSE_meldingen 表。

例如

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

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 2010-10-18
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多