LINQ分组查询统计

LINQ分组查询统计
这⾥介绍Linq使⽤Group By和Count得到每个CategoryID中产品数量,Linq使⽤Group By和Count得到每个CategoryID中断货产品的数量等⽅⾯。
学经常会遇到Linq使⽤Group By问题,这⾥将介绍Linq使⽤Group By问题的解决⽅法。
1.计数
1. var q =
2. from p in db.Products
3. group p by p.CategoryID into g
4. select new {
5. g.Key,
6. NumProducts = g.Count()
7. };
水下光缆
语句描述:Linq使⽤Group By和Count得到每个CategoryID中产品的数量。
说明:先按CategoryID归类,取出CategoryID值和各个分类产品的数量。
2.带条件计数
1. var q =
2. from p in db.Products
3. group p by p.CategoryID into g
4. select new {
马铃薯曲奇5. g.Key,
6. NumProducts = g.Count(p => p.Discontinued)
7. };
语句描述:Linq使⽤Group By和Count得到每个CategoryID中断货产品的数量。
说明:先按CategoryID归类,取出CategoryID值和各个分类产品的断货数量。 Count函数⾥,使⽤了Lambda表达式,Lambda表达式中的p,代表这个组⾥的⼀个元素或对象,即某⼀个产品。
3.Where限制
1. var q =
拼接墙2. from p in db.Products
3. group p by p.CategoryID into g
4. where g.Count() >= 10
5. select new {
6. g.Key,
7. ProductCount = g.Count()
刮刀研磨机8. };
语句描述:根据产品的―ID分组,查询产品数量⼤于10的ID和产品数量。这个⽰例在Group By⼦句后使⽤Where⼦句查所有⾄少有10种产品的类别。
说明:在翻译成SQL语句时,在最外层嵌套了Where条件。
4.多列(Multiple Columns)
1. var categories =
2. from p in db.Products
3. group p by new
4. {
5. p.CategoryID,
6. p.SupplierID旋转翼
7. }
8. into g
9. select new
10. {
11. g.Key,
12. g
13. };
语句描述:Linq使⽤Group By按CategoryID和SupplierID将产品分组。
说明:既按产品的分类,⼜按供应商分类。在by后⾯,new出来⼀个匿名类。这⾥,Key其实质是⼀个类的对象,Key包含两个
Property:CategoryID、SupplierID。⽤g.Key.CategoryID可以遍历CategoryID的值。
5.表达式(Expression)
机器码注册码1. var categories =
2. from p in db.Products
3. group p by new { Criterion = p.UnitPrice > 10 } into g
4. select g;
语句描述:Linq使⽤Group By返回两个产品序列。第⼀个序列包含单价⼤于10的产品。第⼆个序列包含单价⼩于或等于10的产品。说明:按产品单价是否⼤于10分类。其结果分为两类,⼤于的是⼀类,⼩于及等于为另⼀类。

本文发布于:2024-09-21 14:47:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/276251.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:产品   分类   数量   单价   条件   分组   序列   对象
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议