SQL聚合函數我想在應用follwing SQL查詢我的DataTable我如何可以使用C#的DataTable
SELECT MakeDistinct AS AfterDistinct
, COUNT(MakeDistinct) AS Count
FROM MyTable
GROUP BY MakeDistinct
請參閱本Question瞭解更多詳情
SQL聚合函數我想在應用follwing SQL查詢我的DataTable我如何可以使用C#的DataTable
SELECT MakeDistinct AS AfterDistinct
, COUNT(MakeDistinct) AS Count
FROM MyTable
GROUP BY MakeDistinct
請參閱本Question瞭解更多詳情
類似:
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
更加高效。
您是部分尋找DataTable.Compute
。該方法可以爲您計算聚合函數。所以,你喜歡的東西:按列
object sumObject;
sumObject = myDataTable.Compute("Sum(Count)", ""); // second parameter is the where clause
對於分組,看到了這個問題:Efficient DataTable Group By。它提供了一個Linq實現以及一個「非Linq」實現。
使用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()
};
那麼,是什麼問題? – Alex
請顯示一些源代碼...你有什麼試過?問題是什麼 ? – Yahia
您不能......只是在鏈接的問題接受的答案中運行查詢並將其保存到另一個數據表中,或者在您現有的數據表中循環以進行計數,最終使用rowfilter屬性... –