DataTableの列の最大値、最小値、合計値、平均値を求める方法です。
昔はforeachで回す方法しか知りませんでした。
DataTable dt;
foreach (DataRow dr in dt.Rows)
{
sum += (decimal) dr[列名];
}
しかし、次の方法が簡単&便利です。なんと1行だけで済みます。
Computeを使用します。
dt.Compute("SUM([列名])", null);
さらに2個目の引数でフィルターをかけて計算対象の列を絞ることができます。(ANDやORも使えます。)
例えば、0より大きいものだけの合計を計算したい場合は以下の様にします。
dt.Compute("SUM([列名])", "[列名]>0");
さらに10未満という条件を加えます。
dt.Compute("SUM([列名])", "[列名]>0 AND [列名]<10");
こんな感じで色々な使い方ができそうです。
これが合計値の求め方ですが、SUMの部分をMAX(最大値)、MIN(最小値)、AVE(平均値)と記述すればそれぞれの集約計算をしてくれます。これは便利。
2006年02月24日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/13703955
この記事へのトラックバック
http://blog.seesaa.jp/tb/13703955
この記事へのトラックバック