這裡介紹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...