1.簡單形式:
- var q =
- from p in db.Products
- group p by p.CategoryID into g
- select g;
語句描述:Linq使用Group By按CategoryID劃分產品。
說明:from p in db.Products 表示從表中將產品物件取出來。group p by p.CategoryID into g表示對p按CategoryID欄位歸類。其結果命名為g,一旦重新命名,p的作用域就結束了,所以,最後select時,只能select g。
2.最大值
- var q =
- from p in db.Products
- group p by p.CategoryID into g
- select new {
- g.Key,
- MaxPrice = g.Max(p => p.UnitPrice)
- };
語句描述:Linq使用Group By和Max查詢每個CategoryID的最高單價。
說明:先按CategoryID歸類,判斷各個分類產品中單價最大的Products。取出CategoryID值,並把UnitPrice值賦給MaxPrice。
3.最小值
- var q =
- from p in db.Products
- group p by p.CategoryID into g
- select new {
- g.Key,
- MinPrice = g.Min(p => p.UnitPrice)
- };
語句描述:Linq使用Group By和Min查詢每個CategoryID的最低單價。
說明:先按CategoryID歸類,判斷各個分類產品中單價最小的Products。取出CategoryID值,並把UnitPrice值賦給MinPrice。
4.平均值
- var q =
- from p in db.Products
- group p by p.CategoryID into g
- select new {
- g.Key,
- AveragePrice = g.Average(p => p.UnitPrice)
- };
語句描述:Linq使用Group By和Average得到每個CategoryID的平均單價。
說明:先按CategoryID歸類,取出CategoryID值和各個分類產品中單價的平均值。
5.求和
- var q =
- from p in db.Products
- group p by p.CategoryID into g
- select new {
- g.Key,
- TotalPrice = g.Sum(p => p.UnitPrice)
- };