2

DataTable に次の Sql クエリを適用したい

SELECT MakeDistinct AS AfterDistinct
       , COUNT(MakeDistinct) AS Count
    FROM MyTable
GROUP BY MakeDistinct

詳細については、この質問を参照してください

4

3 に答える 3

3

何かのようなもの:

var query = from row in table.AsEnumerable()
            group row by row.Field<int>("MakeDistinct") into grp
            select new {AfterDistinct = grp.Key, Count = grp.Count()};

foreach(var row in query) {
    Console.WriteLine("{0}: {1}", row.AfterDistinct, row.Count);
}

DataTable通常、データベース サーバーで集計する方が、ネットワーク経由で にデータを入力してから を集計するよりもはるかに効率的であることに注意してくださいDataTable

于 2013-05-15T11:36:44.870 に答える
1

を部分的に探していDataTable.Computeます。そのメソッドは、集計関数を計算できます。したがって、次のようなものが得られます。

object sumObject;
sumObject = myDataTable.Compute("Sum(Count)", ""); // second parameter is the where clause

列によるグループ化については、この質問を参照してください: Efficient DataTable Group By。これは、Linq 実装と「非 Linq」実装を提供します。

于 2013-05-15T11:36:01.377 に答える
0

System.Data.DataSetExtensionsを使用して、このようなことを試してください

var result = from row in dt.AsEnumerable()
              group row by row.Field<int>("MakeDistinct") into grp
              select new
                 {
                    MakeDistinct = grp.Key,
                    Count = grp.Count()
                 };
于 2013-05-15T11:36:56.170 に答える