.NET SQL Server UDF窗口

时间:2015-12-23 18:44:10

标签: c# .net sql-server user-defined-functions sqlclr

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

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

但是,对于我的50天移动平均线,我需要每行的值和前面的49。

1 个答案:

答案 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)?