LINQ查询以根据计算值的范围进行分组
我有一个sql查询,用于将度量值分布到多个容器中:LINQ查询以根据计算值的范围进行分组,linq,grouping,range,Linq,Grouping,Range,我有一个sql查询,用于将度量值分布到多个容器中: SELECT FLOOR(Value / @Step) * @Step AS Bin, COUNT(*) AS Cnt FROM Measurements WHERE (StepId = @StepId) GROUP BY Bin ORDER BY Bin 在哪里 值=基于StepId返回的测量值(测量值表中的主键) 步骤=实际组数(分布中的箱子) 如何使用LINQ并基于动态创建的值范围创建分组
SELECT FLOOR(Value / @Step) * @Step AS Bin,
COUNT(*) AS Cnt FROM Measurements WHERE (StepId = @StepId)
GROUP BY Bin ORDER BY Bin
在哪里
值=基于StepId返回的测量值(测量值表中的主键)
步骤=实际组数(分布中的箱子)
如何使用LINQ
并基于动态创建的值范围创建分组
请给出建议。我想这就是你想要的:
double step = 100;
var stepId = 1;
from m in context.Measurements
where m.StepId == stepId;
let bin = (Math.Floor(c.Value / step)) * step
orderby bin
group m by bin into x
select new { x.Key, Count = x.Count() }
您甚至可以省略Floor函数,因为整数上的“/”运算符在SQL中具有相同的函数