DataTable中資料記錄的統計 (轉)
我們在使用 SERVER這些時,可以輕鬆的透過Sum、Aver、Count等統計出相關結果,那麼,在已經把資料檢索出來的DataSet(DataTable)中呢?特別是透過 Service獲得了DataSet,這個時候,可是沒有辦法回頭去修改語句來獲取這些統計了。那麼在DataSet/DataTable中是否可以進行統計呢?答案是肯定的。
在MSDN中,有一篇MS推薦的統計方法,就是逐行對資料進行求和統計,這個方法,其實有等於無(或許這個方法只是針對於DataGrid求取小計用吧),因為這個方法中採用的是DataGrid的ItemDataBind事件來對資料進行累加,同我們手動寫程式碼統計沒有什麼區別。
本文介紹一個簡單的方法,不需要逐條記錄進行計算就可以輕鬆的獲得DataTable中的記錄統計結果。這個簡單的方法就是功能強大的DataTable的Compute。
一、呼叫說明(僅以為例,下同):
public Compute(string strExpression,string strFilter)
引數:
strExpression:要計算的字串,基本上類似於中的統計表示式
strFilter:統計的過濾字串,只有滿足這個過濾條件的記錄才會被統計
二、呼叫舉例:
以下示例,假設一個產品銷售表table,描述某商場中各促銷員銷售的實際記錄,包含欄位為:姓名(Name)、性別(Sex,0為女,1為男)、生日(Birthday)、銷售產品的程式碼(ProID)、銷售的數量(Quantity)、銷售價格(Price)。
1。統計所有性別為女的銷售員的數量:
table.Compute("Count(*)","Sex=0");
2。統計所有銷售員中年齡大於20歲的
table.Compute("Count(*)","Birthday
3。統計銷售產品的平均價格
table.Compute("Aver(Price)","true");
4。統計產品程式碼為1的產品銷售數量:
table.Compute("Sum(Quantity)","ProID=1");
5。統計所有產品的銷售總金額:
要統計總銷售金額,由於table中不存在某項產品某個促銷員銷售的金額資料,但我們可以透過Quantity*Price來獲得。比如:
table.Compute("Sum(Quantity*Price)","true");
這裡一個問題是:DataTable的統計功能沒有SqlServer強,這個統計是錯誤的,因為Compute的統計不具備Sum(Quantity*Price)這樣資料的功能。那怎麼辦呢?
對於這樣複雜資料的統計,我們可以在DataTable中建立一個新的欄位來完成,比如Amount,同時設定該欄位的Expression為Quantity*Price,這樣我們就可以使用統計功能了:
table.Compute("Sum(Amount)","true");
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-963327/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL如何按周統計表中資料MySql
- Mongodb 的中資料統計神器Map_Reduce的使用MongoDB
- Oracle中資料塊中row number缺失(記錄,未解決)Oracle
- oracle資料塊中資料儲存(摘錄)Oracle
- 混合運算中資料型別的轉換 (轉)資料型別
- Sql表和Excel中資料的轉移SQLExcel
- C#獲取變更過的DataTable記錄的實現方法C#
- JS中資料型別轉換JS資料型別
- Mysql 5.7中資料量更改統計資料收集的邏輯MySql
- 將oracle中資料轉存到excel中OracleExcel
- C#:Dictionary轉DataTableC#
- c# DataTable轉ListC#
- 泛型轉DataTable方法泛型
- DataTable 轉為 List<dynamic>
- PHP中資料型別轉換的三種方式PHP資料型別
- datatable資料解析
- 統計子目錄大小的shell指令碼(轉)指令碼
- 談Delphi程式設計中資原始檔的應用 (轉)程式設計
- DataTable與List相互轉換
- 將DataTable一行放入另一個DataTable中(筆記)筆記
- 備忘錄:C#獲取微信小程式的雲資料庫中資料C#微信小程式資料庫
- 同步整合不同系統、不同資料庫中資料的問題資料庫
- 資料庫從檔案系統轉移至ASM實驗記錄資料庫ASM
- JS資料型別轉換記錄JS資料型別
- electron 外掛系統設計記錄
- 資料庫從檔案系統轉移至ASM實驗記錄[zt]資料庫ASM
- C語言中資料型別轉換函式C語言資料型別函式
- List,DataTable實現行轉列的通用方案
- DataTable快取資料操作快取
- C結構體中資料的記憶體對齊問題結構體記憶體
- Python學習記錄_基本統計值計算Python
- MySQL-資料記錄大小寫轉換MySql
- c語言中資料型別的自動轉換原則C語言資料型別
- C語言中資料型別的自動型別轉換C語言資料型別
- 機器學習中資料清洗的藝術機器學習
- NodeJs中資料庫的使用NodeJS資料庫
- ACCESS 統計報表有多少行記錄
- WCF使用資料集(DataSet)、資料表(DataTable)、集合(Collection)傳遞資料 (轉)