LINQ体验(7)-LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
我们继续讲解LINQ to SQL语句,这篇我们来讨论Group By/Having操作符和 Exists/In/Any/All/Contains操作符。 Group By/Having操作符 适用 场景:分组数据,为我们查找数据缩小范围。 说明:分配并返回对传入 参数进行分组操作后的可枚举对象。分组;延迟 1.简单形式:
语句描述:使用Group By 按CategoryID划分产品。 说明:from p in db.Products 表示从表中将 产品对象取出来。group p by p.CategoryID into g表示对p按CategoryID字段 归类。其结果命名为g,一旦重新命名,p的作用域就结束了,所以,最后select 时,只能select g。当然,也不必重新命名可以这样写:
我们用示意图表示: 如果想遍历某类别中所有记录,这样:
说明:在这句LINQ语句中,有2个property:CategoryID和g。这个 匿名类,其实质是对返回结果集重新进行了包装。把g的property封装成一个完 整的分组。如下图所示: 如果想遍历某匿名类中所有记录,要这么做:
语句 描述:使用Group By和Max查找每个CategoryID的最高单价。 说明:先按 CategoryID归类,判断各个分类产品中单价最大的Products。取出CategoryID值 ,并把UnitPrice值赋给MaxPrice。 4.最小值
语句描述:使用Group By和Min查 找每个CategoryID的最低单价。 说明:先按CategoryID归类,判断各个 分类产品中单价最小的Products。取出CategoryID值,并把UnitPrice值赋给 MinPrice。 5.平均值
语句描述:使用Group By和 Average得到每个CategoryID的平均单价。 说明:先按CategoryID归类, 取出CategoryID值和各个分类产品中单价的平均值。 6.求和
语 句描述:使用Group By和Sum得到每个CategoryID 的单价总计。 说明: 先按CategoryID归类,取出CategoryID值和各个分类产品中单价的总和。 7.计数
语句 描述:使用Group By和Count得到每个CategoryID中产品的数量。 说明: 先按CategoryID归类,取出CategoryID值和各个分类产品的数量。 8.带 条件计数
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |