首页 > 其他分享 >Linq Group by

Linq Group by

时间:2024-08-21 14:50:02浏览次数:4  
标签:Group Linq Products group CategoryID select

linq中group by

下面介绍Linq使用Group By的常见场景

 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)  
   }; 

 

 

6.Where限制

 
var q =  
   from p in db.Products  
   group p by p.CategoryID into g  
   where g.Count() >= 10  
   select new {  
     g.Key,  
     ProductCount = g.Count()  
   }; 

 

语句描述:根据产品的―ID分组,查询产品数量大于10的ID和产品数量。这个示例在Group By子句后使用Where子句查找所有至少有10种产品的类别。

说明:在翻译成SQL语句时,在最外层嵌套了Where条件。

 

7.多列(Multiple Columns)

 
var categories =  
   from p in db.Products  
   group p by new  
   {  
     p.CategoryID,  
     p.SupplierID  
   }  
   into g  
   select new  
   {  
     g.Key,  
     g  
   }; 

语句描述:Linq使用Group By按CategoryID和SupplierID将产品分组。

说明:既按产品的分类,又按供应商分类。在by后面,new出来一个匿名类。这里,Key其实质是一个类的对象,Key包含两个Property:CategoryID、SupplierID。用g.Key.CategoryID可以遍历CategoryID的值。

 

8.表达式(Expression)

 
var categories =  
   from p in db.Products  
   group p by new { Criterion = p.UnitPrice > 10 } into g  
   select g; 

语句描述:Linq使用Group By返回两个产品序列。第一个序列包含单价大于10的产品。第二个序列包含单价小于或等于10的产品。

说明:按产品单价是否大于10分类。其结果分为两类,大于的是一类,小于及等于为另一类。

 

 转自http://www.studyofnet.com/news/397.html

标签:Group,Linq,Products,group,CategoryID,select
From: https://www.cnblogs.com/chai2020/p/18371604

相关文章

  • Ros2 MoveIt2 MoveGroup C++接口
     在MoveIt中,最简单的用户界面是通过 MoveGroupInterface 类。它为用户可能想要执行的大多数操作提供了易于使用的功能,特别是设置关节或姿势目标、创建运动计划、移动机器人、将对象添加到环境中以及从机器人上连接/分离对象。此接口通过ROS主题、服务和操作与 MoveGrou......
  • C#基础:数据库中使用Linq作分组处理(反射/直接分组)
    目录一、使用反射分组二、不使用反射分组三、调用示例四、代码demo一、使用反射分组privatestaticList<GroupList<T>>GetGroupList<T>(List<T>entities,stringgroupByProperty){//获取分组字段的类型varpropertyInfo=typeof(T).GetProperty(groupBy......
  • linq 高级 规约
    LinqExpressionLearn\Linq\ParameterRebinder.csusingSystem.Linq.Expressions;///<summary>///表达式参数///</summary>publicclassParameterRebinder:ExpressionVisitor{///<summary>///参数字典///</summary>priv......
  • linq快速动态获取数据库表字段名称、类型、数据
     varbj="Bj";             varpbj=typeof(Xs_xx).GetProperty(bj);//获得班级属性      /*      varcxbj=fromaainsjklj.Xs_xx            lety=(string)pbj.GetValue(aa,null)//linq......
  • html table colgroup col 使用、功能测试
    代码<template><divclass="page-box"><!--colgroup使用方式1--><table><colgroup><colspan="2"style="width:100px"/><col......
  • 科研绘图系列:R语言多分组箱线图(grouped boxplot)
    介绍分组箱线图(GroupedBoxplot)是一种用于展示不同组别数据分布情况的统计图表。它将箱线图(Boxplot)按照不同的类别或组别进行分组,使得可以同时比较多个组别的数据特征。箱线图本身是一种标准化的显示数据分布的方法,它能够展示数据的中位数、四分位数以及异常值。箱线图的......
  • [RIS]Contrastive Grouping with Transformer for Referring Image Segmentation-CGFo
    1.BaseInfoTitleContrastiveGroupingwithTransformerforReferringImageSegmentationAdresshttps://arxiv.org/pdf/2309.01017Journal/TimeCVPR2023Author上海科技大学Codehttps://github.com/SooLab/CGFormerRead202408013Table#VisonLanguage#RIS2.CreativeQ......
  • Odoo search、name_search、search_count、search_read、read_group
    主要包括以下几个方法及主要用途:search():搜索视图中调用search_count():视图中计算记录数时调用name_search():many2one字段搜索时调用search_read():many2one点开搜索更多时调用read_group():搜索视图分组时调用search()search方法中包含有几个子方法 根据domian取查......
  • 【PostgreSQL教程】PostgreSQL GROUP BY 语句
    博主介绍:✌全网粉丝20W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。感兴趣的可以先......
  • PIX第二天2_object_group
    objectgrouping对事件东西进行归类。老式的配置方法,配置非常繁琐,配置量大可以对4种类型的object进行归类protocols(inside_protocols)tcpudpnetworksandhosts(inside_host)subnet10.0.0.0/2410.0.1.1110.0.2.11services(dmz_services)httphttpsftpicmp(ping)ec......