0

複数のビンへの測定値の分布を取得するために使用する SQL クエリがあります。

SELECT FLOOR(Value / @Step) * @Step AS Bin,        
       COUNT(*) AS Cnt FROM Measurements WHERE (StepId = @StepId) 
       GROUP BY Bin ORDER BY Bin 

ここで、Value = StepId (測定値テーブルの主キー) に基づいて返される測定値の値 Step = 実際のグループ数 (分布のビン)。

LINQ動的に作成された値の範囲に基づいてグループ化を使用および作成するにはどうすればよいですか。

ご意見をお聞かせください。

4

1 に答える 1

0

これがあなたが求めているものだと思います:

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() }

整数の "/" 演算子は SQL で同じ機能を持つため、Floor 関数を省略することもできます。

于 2012-05-31T20:25:48.330 に答える