LINQ-資料彙總好物Aggregate()

平常公司都會有匯出報表的功能,通常這類型資料都可以在SQL中完成。

EX:該月業績最好的業務員

1月 小王 (30筆訂單)

2月 小陳 (40筆訂單)

3月 小林 (20筆訂單)

類似這樣的資料在SQL中只需要GROUP + MAX就可以完成,使用LINQ時候也是GROUP + COUNT就可以完成。

 

但如果情境變成NOSQL,沒有GROUP這種函數,並且要呈現的資料為

「當月業績最好的人,並算出  該月  的 每日業績總額」

就會變成依據月份來算每日Total,此時使用SUM也不是、MAX也不是,往往就是跑for迴圈,給予初始值,月份結束時候重新計算,其實可以不用這麼麻煩,可以透過Aggregate()來幫我們處理。

 

...繼續閱讀 »