|
■No30713 (さら さん) に返信
> 単一だと、
> DataContext db = new DataContext()
> var q = (from t in db.Table1
> select t.col1).Sum();
> で取得できるのですが、
> Select Sum(col1),Sum(col2),Sum(col3) from Table1
> のように複数列集計の場合はどういう方法でしょうか?
> よろしくお願いします。
>
集計結果をひとつのオブジェクトに入れたいのであれば
var q = new {
sum1 = db.Table1.Select(t => t.col1).Sum(),
sum2 = db.Table1.Select(t => t.col2).Sum(),
sum3 = db.Table1.Select(t => t.col3).Sum()
};
などでいけると思います。
ただし、 Sum() は内部で全要素を foreach で回している(上記例だと foreach が 3 回実行される事になる)ので、
実際には、 Linq を使用せずに自前で集計した方が速いです。
|