Linq之GroupBy用法
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.计数
- var q =
- from p in db.Products
- group p by p.CategoryID into g
- select new {
- g.Key,
- NumProducts = g.Count()
- };
语句描述:Linq使用Group By和Count得到每个CategoryID中产品的数量。
说明:先按CategoryID归类,取出CategoryID值和各个分类产品的数量。
7.带条件计数
- var q =
- from p in db.Products
- group p by p.CategoryID into g
- select new {
- g.Key,
- NumProducts = g.Count(p => p.Discontinued)
- };
语句描述:Linq使用Group By和Count得到每个CategoryID中断货产品的数量。
说明:先按CategoryID归类,取出CategoryID值和各个分类产品的断货数量。 Count函数里,使用了Lambda表达式,Lambda表达式中的p,代表这个组里的一个元素或对象,即某一个产品。
8.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条件。
9.多列(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的值。
10.表达式(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分类。其结果分为两类,大于的是一类,小于及等于为另一类。
Linq之GroupBy用法相关推荐
- Python中的groupby用法
groupby,聚合,分组级运算 Python中的groupby分组 groupby用法
- 转载Linq中GroupBy方法的使用总结
Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: public class St ...
- python groupby用法_Python 标准库实践之合并字典组成的列表
作者 | 陈祥安 来源 | Python学习开发 最近做了个数据合并的需求这里记录下: 要求如下: dict_of_list1 = [{"name": "zhangsan ...
- C# List泛型集合中的GroupBy用法
[csharp] view plaincopy print? //根据子项目id得到flowjump实体类 flowJumps = this.FlowJumps; //按工序groupby flowj ...
- Pandas高级教程之:GroupBy用法
文章目录 简介 分割数据 多index get_group dropna groups属性 index的层级 group的遍历 聚合操作 通用聚合方法 同时使用多个聚合方法 NamedAgg 不同的列 ...
- linq.js的用法
linq.js 详细介绍 linq.js 是一个 JavaScript 实现的 LINQ. 主要特性: 实现所有 .NET 4.0 的方法 complete lazy evaluation full ...
- 常用的LINQ to SQL 用法
一.Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简 ...
- Pandas中的 transform() 结合 groupby() 用法示例
首先,假设我们有如下餐厅数据集: import pandas as pddf = pd.DataFrame({'restaurant_id': [101,102,103,104,105,106,107 ...
- linq To Xml 用法简介
先看实例: 在配置文件中加入: <add key="SaveXmlPath" value="D:\SaveXml.xml"/> 而后创建一个实全类: ...
最新文章
- “不给钱就删库”的勒索病毒, 程序员该如何防护?
- 91. 最短Hamilton路径【状压DP】
- Bash中的shopt选项
- Ubuntu9.04 Update software Sources
- javase11源码文件_JavaSE 7,8:确定特定文件系统支持的视图
- bash中将字符串split成数组的方法
- 如何系统性地保障软件性能
- 数据结构之图的存储结构:邻接表法
- c++11线程必须要懂得同步技术
- c语言recover函数的功能是,c语言实验报告(附答案版).doc
- 公司组织框架以及人员信息同步到钉钉相关解决方案
- 《推荐系统笔记(十二)》聚类生成标签以及基于标签的TopN推荐
- 5.3(将千克转换成磅)
- GmSSL3.0 在Android上的命令行风格封装
- 有效软件测试 - 50条建议 - 需求阶段
- 泰克Tektronix示波器软件TDS1012|TDS2002|TDS2004上位机软件NS-Scope
- 用迅雷打开php文件,迅雷下的php文件怎么打开啊?
- android 除了webview 浏览器控件,android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器...
- MacBook Pro(13 英寸,2011 年末)A1278 安装Winows11无声音问题解决(WIN10和WIN11同样的解决方法)
- 刚上任的程序员如何做好团队管理
热门文章
- python中可哈希是什么意思_实习小记-python中可哈希对象是个啥?what is hashable object in python?...
- iPhone 6 被盗记录二【写在315前夕:苹果售后福州直信创邺在没有三包的情况下帮小偷翻新、助力小偷换机销赃!无视王法。让人震惊,痛心,憎恨!消费者很受伤很无奈】...
- 通过java2dAPI绘制报表
- 爬虫之获取各大网站热搜并实现语音播报
- 微博报错:Ip Limit, request ip is not contained in safety ip error_code:10004/2/status
- 音频和视频的基础知识
- Eclipse中如何把自己写的方法封装成jar包供其他项目使用
- 王杰与宣萱合作lt;老婆大人gt; 获封两个第一(图)
- Linux 腾讯云服务器账户创建流程
- 基于PSO优化VIC算法的WORM蠕虫检测matlab仿真