是否可以创建一个可以执行类似于内置窗口函数的C#SQL Server UDF?
例如,我想编写一个计算移动平均线的函数。我为.NET UDF here找到的唯一文档显示了单个值的简单输入。
但是,对于我的50天移动平均线,我需要每行的值和前面的49。
答案 0 :(得分:0)
如果您使用的是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
Is it possible to use user defined aggregates (clr) with window functions (over)?