gpt4 book ai didi

.net - 多列上的 LINQ COUNT

转载 作者:行者123 更新时间:2023-12-04 01:50:39 24 4
gpt4 key购买 nike

如果我有一个包含标题列和包含 1 或 NULL 的 3 位列(f1、f2、f3)的表,我将如何编写 LINQ 以返回带有包含 1 的每个位列的计数的标题?我正在寻找与此 SQL 查询等效的内容:

SELECT title, COUNT(f1), COUNT(f2), COUNT(f3) FROM myTable GROUP BY title

我正在寻找“最好”的方式来做到这一点。当你查看底层SQL时,我想出的版本在表中浸入了4次,所以它太慢了。

最佳答案

如果您想坚持使用 LINQ 查询并使用匿名类型,则查询可能如下所示:

 var query = 
from r in ctx.myTable
group r by r.title into rgroup
select new
{
Title = rgroup.Key,
F1Count = rgroup.Count(rg => rg.f1 == true),
F2Count = rgroup.Count(rg => rg.f2 == true),
F3Count = rgroup.Count(rg => rg.f3 == true)
};

诀窍是认识到您想要计算真实字段的数量(它被映射为一个可为空的 bool),您可以使用 Count 运算符和谓词来完成。有关 LINQ 组运算符的更多信息,请访问: The Standard LINQ Operators

关于.net - 多列上的 LINQ COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/474817/

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