.NET SQL Server UDF Windowing

本文关键字:Windowing UDF Server SQL NET | 更新日期: 2023-09-27 18:27:57

是否可以创建一个C#SQL Server UDF来执行类似于内置Windowing函数的功能?

例如,我想写一个函数来计算移动平均值。在这里,我找到的唯一一个.NET UDF文档显示了一个简单的值输入。

然而,对于我的50天移动平均线,我需要每一行的值,以及前面的49。

.NET SQL Server UDF Windowing

如果使用SQL 2012或更高版本,则可以将ROWS PRECEDING选项与AVG 一起使用

SELECT 
    AVG([your column]) OVER (
        ORDER BY [your date] 
        ROWS BETWEEN 50 PRECEDING AND CURRENT ROW) AS [Rolling 50 Day Average]
FROM [your table]

至于使用带窗口的SQLCLR UDF,看起来唯一支持的功能是PARTITION BY

是否可以将用户定义的聚合(clr)与窗口函数(over)一起使用?