1.简单形式:

  1. var q =
  2. from p in db.Products
  3. group p by p.CategoryID into g
  4. 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.最大值

  1. var q =
  2. from p in db.Products
  3. group p by p.CategoryID into g
  4. select new {
  5. g.Key,
  6. MaxPrice = g.Max(p => p.UnitPrice)
  7. };

语句描述:Linq使用Group By和Max查找每个CategoryID的最高单价。

说明:先按CategoryID归类,判断各个分类产品中单价最大的Products。取出CategoryID值,并把UnitPrice值赋给MaxPrice。

3.最小值

  1. var q =
  2. from p in db.Products
  3. group p by p.CategoryID into g
  4. select new {
  5. g.Key,
  6. MinPrice = g.Min(p => p.UnitPrice)
  7. };

语句描述:Linq使用Group By和Min查找每个CategoryID的最低单价。

说明:先按CategoryID归类,判断各个分类产品中单价最小的Products。取出CategoryID值,并把UnitPrice值赋给MinPrice。

4.平均值

  1. var q =
  2. from p in db.Products
  3. group p by p.CategoryID into g
  4. select new {
  5. g.Key,
  6. AveragePrice = g.Average(p => p.UnitPrice)
  7. };

语句描述: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.计数

  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值和各个分类产品的数量。

7.带条件计数

  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,代表这个组里的一个元素或对象,即某一个产品。

8.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条件。

9.多列(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的值。

10.表达式(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分类。其结果分为两类,大于的是一类,小于及等于为另一类。

Linq之GroupBy用法相关推荐

  1. Python中的groupby用法

    groupby,聚合,分组级运算 Python中的groupby分组 groupby用法

  2. 转载Linq中GroupBy方法的使用总结

    Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: public class St ...

  3. python groupby用法_Python 标准库实践之合并字典组成的列表

    作者 | 陈祥安 来源 | Python学习开发 最近做了个数据合并的需求这里记录下: 要求如下: dict_of_list1 = [{"name": "zhangsan ...

  4. C# List泛型集合中的GroupBy用法

    [csharp] view plaincopy print? //根据子项目id得到flowjump实体类 flowJumps = this.FlowJumps; //按工序groupby flowj ...

  5. Pandas高级教程之:GroupBy用法

    文章目录 简介 分割数据 多index get_group dropna groups属性 index的层级 group的遍历 聚合操作 通用聚合方法 同时使用多个聚合方法 NamedAgg 不同的列 ...

  6. linq.js的用法

    linq.js 详细介绍 linq.js 是一个 JavaScript 实现的 LINQ. 主要特性: 实现所有 .NET 4.0 的方法 complete lazy evaluation full ...

  7. 常用的LINQ to SQL 用法

    一.Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简 ...

  8. Pandas中的 transform() 结合 groupby() 用法示例

    首先,假设我们有如下餐厅数据集: import pandas as pddf = pd.DataFrame({'restaurant_id': [101,102,103,104,105,106,107 ...

  9. linq To Xml 用法简介

    先看实例: 在配置文件中加入: <add key="SaveXmlPath" value="D:\SaveXml.xml"/> 而后创建一个实全类: ...

最新文章

  1. “不给钱就删库”的勒索病毒, 程序员该如何防护?
  2. 91. 最短Hamilton路径【状压DP】
  3. Bash中的shopt选项
  4. Ubuntu9.04 Update software Sources
  5. javase11源码文件_JavaSE 7,8:确定特定文件系统支持的视图
  6. bash中将字符串split成数组的方法
  7. 如何系统性地保障软件性能
  8. 数据结构之图的存储结构:邻接表法
  9. c++11线程必须要懂得同步技术
  10. c语言recover函数的功能是,c语言实验报告(附答案版).doc
  11. 公司组织框架以及人员信息同步到钉钉相关解决方案
  12. 《推荐系统笔记(十二)》聚类生成标签以及基于标签的TopN推荐
  13. 5.3(将千克转换成磅)
  14. GmSSL3.0 在Android上的命令行风格封装
  15. 有效软件测试 - 50条建议 - 需求阶段
  16. 泰克Tektronix示波器软件TDS1012|TDS2002|TDS2004上位机软件NS-Scope
  17. 用迅雷打开php文件,迅雷下的php文件怎么打开啊?
  18. android 除了webview 浏览器控件,android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器...
  19. MacBook Pro(13 英寸,2011 年末)A1278 安装Winows11无声音问题解决(WIN10和WIN11同样的解决方法)
  20. 刚上任的程序员如何做好团队管理

热门文章

  1. python中可哈希是什么意思_实习小记-python中可哈希对象是个啥?what is hashable object in python?...
  2. iPhone 6 被盗记录二【写在315前夕:苹果售后福州直信创邺在没有三包的情况下帮小偷翻新、助力小偷换机销赃!无视王法。让人震惊,痛心,憎恨!消费者很受伤很无奈】...
  3. 通过java2dAPI绘制报表
  4. 爬虫之获取各大网站热搜并实现语音播报
  5. 微博报错:Ip Limit, request ip is not contained in safety ip error_code:10004/2/status
  6. 音频和视频的基础知识
  7. Eclipse中如何把自己写的方法封装成jar包供其他项目使用
  8. 王杰与宣萱合作lt;老婆大人gt; 获封两个第一(图)
  9. Linux 腾讯云服务器账户创建流程
  10. 基于PSO优化VIC算法的WORM蠕虫检测matlab仿真