首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ to SQL -调用内置聚合函数(即STDEV)

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

Stack Overflow用户
提问于 2012-08-07 02:23:45
回答 1查看 676关注 0票数 2

有没有办法让LINQ把查询直接转换成像SQL的STDEV这样的函数呢?例如,LINQ

代码语言:javascript
复制
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函数会自动为您忽略这些空值。此外,它导致通过网络发送的数据更少,计算速度更快。

有办法做到这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-07 03:47:14

不,没有办法直接通过LINQ做到这一点。

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

然而,阻力最小的选项是对于每个您想要标准差的查询,您将创建一个执行操作的存储过程,然后使用LINQ- to -SQL调用该存储过程。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11833781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档