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

Posted

技术标签:

【中文标题】T-SQL 中的用户定义聚合函数而不是 .net 程序集? [复制]【英文标题】:User Defined Aggregate Function in T-SQL instead of .net assembly? [duplicate] 【发布时间】:2013-03-15 03:37:11 【问题描述】:

聚合函数很有用,例如:

select FinancialYear, PLFolder, Sum(PLDelta) SumDelta 
from PL group by FinancialYear, PLFolder

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

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

是否可以在纯 T-SQL 中做到这一点?

【问题讨论】:

波动率不是很容易用其他聚合函数计算吗? 这只是一个例子,例如计算一个分位数,但不是遵循mssql内置的“top 5%”逻辑,需要一些插值... 不,不可能 【参考方案1】:

没有。

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

【讨论】:

以上是关于T-SQL 中的用户定义聚合函数而不是 .net 程序集? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

t-sql 用户定义函数,用表中的查找替换文本

子选择 T-SQL 中的聚合函数

T-SQL 聚合函数Count与NULL

窗口聚合函数与分组聚合函数的异同

ASP.NET Core 依赖注入单个聚合类而不是多个单独的构造函数注入

T-SQL 多样化子查询,聚合函数