Linq 分組統計

2021-09-08 08:18:45 字數 1501 閱讀 7480

這裡介紹linq使用group by和count得到每個categoryid中產品的數量,linq使用group by和count得到每個categoryid中斷貨產品的數量等方面。

學經常會遇到linq使用group by問題,這裡將介紹linq使用group by問題的解決方法。

1.計數

var q =

from p in db.products

group p by p.categoryid into g

select new ;

語句描述:linq使用group by和count得到每個categoryid中產品的數量。

說明:先按categoryid歸類,取出categoryid值和各個分類產品的數量。

2.帶條件計數

var q =

from p in db.products

group p by p.categoryid into g

select new ;

語句描述:linq使用group by和count得到每個categoryid中斷貨產品的數量。

說明:先按categoryid歸類,取出categoryid值和各個分類產品的斷貨數量。 count函式裡,使用了lambda表示式,lambda表示式中的p,代表這個組裡的乙個元素或物件,即某乙個產品。

3.where 限制

var q =

from p in db.products

group p by p.categoryid into g

where g.count() >= 10

select new ;

語句描述:根據產品的―id分組,查詢產品數量大於10的id和產品數量。這個示例在group by子句後使用where子句查詢所有至少有10種產品的類別。

說明:在翻譯成sql語句時,在最外層巢狀了where條件。

4.多列(multiple columns)

var categories =

from p in db.products

group p by new

into g

select new

;語句描述:linq使用group by按categoryid和supplierid將產品分組。

說明:既按產品的分類,又按**商分類。在by後面,new出來乙個匿名類。這裡,key其實質是乙個類的物件,key包含兩個property:categoryid、supplierid。用g.key.categoryid可以遍歷categoryid的值。

5.表示式(expression)

var categories =

from p in db.products

group p by new into g

select g;

語句描述:linq使用group by返回兩個產品序列。第乙個序列包含單價大於10的產品。第二個序列包含單價小於或等於10的產品。

說明:按產品單價是否大於10分類。其結果分為兩類,大於的是一類,小於及等於為另一類。

linq 分組統計

好久不寫東東了,最近做linq分組統計的時候有點麻煩,用了一天時間才都到自己想要的效果,以下是entity framework的分組統計 iqueryablemm null entity.class1 ma new entity.class1 mm from t in context.subject...

LINQ分組查詢統計

var q from p in db.products group p by p.categoryid into g select new 語句描述 linq使用group by和count得到每個categoryid中產品的數量。說明 先按categoryid歸類,取出categoryid值和各個...

巧用Linq分組

如下圖,想根據下面的資料按天求和分組 紅框部分 在後台取過來用orm已經轉成了物件陣列,為了避免再去寫麻煩的sql語句 資料量不大,不要求效能 就用了linq,問題是分組的部分不是時間欄位的全部,只是年月日部分,然後對數值部分進行求和 var newlist from t in list order...