T-SQL中的用户定义聚合函数而不是.net程序集?

ath*_*hos 2 sql sql-server aggregate-functions user-defined-functions

聚合函数很有用,例如:

select FinancialYear, PLFolder, Sum(PLDelta) SumDelta 
from PL group by FinancialYear, PLFolder
Run Code Online (Sandbox Code Playgroud)

但是,有时我需要进行更复杂的计算,例如计算波动率.

这可以通过用C#编程的用户定义聚合函数来完成,编译为CLR程序集,然后导入到MSSQL中.

是否可以在纯T-SQL中执行此操作?

Rem*_*anu 8

没有.

编写自定义聚合的唯一方法是通过SQLCLR.这种限制背后有技术原因,主要与聚合体需要状态有关.