gpt4 book ai didi

c# - LINQ to SQL - 调用内置聚合函数(即 STDEV)

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:07 26 4
gpt4 key购买 nike

有没有办法让 LINQ 将查询直接转换为 SQL 的 STDEV 之类的函数?例如,LINQ

from t in table
group t by t.something into g
select new {
avg = g.Average(o => o.number)
stdev = g.?????
}

变成 SQL AVG。但是,LINQ 中不支持标准偏差。

这里建议了一种方法: Standard Deviation in LINQ

但是,这很笨拙,而且还需要一些额外的工作来处理可能的空值,sql STDEV 函数会自动为您忽略这些值。此外,它导致通过网络发送的数据更少,计算速度更快。

有什么办法吗?

最佳答案

不,没有办法直接通过 LINQ 来完成。

您可以创建一个 CLR aggregate这实际上只是包装了 STDEV aggregate在 SQL Server 中,但这将是大量的过度工作(尽管它可能的)。

但是,阻力最小的选项是针对每个您希望标准偏差的查询,您将创建一个存储过程来执行操作,然后使用 LINQ-to-SQL 调用它。

或者,如果您想在 LINQ-to-SQL 中使用组合,您可以 create a user-defined table function in SQL server and then access that in LINQ-to-SQL并使用它编写您的查询。

关于c# - LINQ to SQL - 调用内置聚合函数(即 STDEV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com