LINQ to SQL语句(2)Count/Sum/Min/Max/Avg操作符
使用场景
类似于SQL中的聚合函数,用于统计数据,不延迟。如返回序列中的元素数量、求和、最小值、最大值、求平均值。
Count
说明:用于返回集合中元素的个数,返回Int类型,生成SQL语句为SELECT COUNT(*) FROM
1. 简单形式
返回订单数量。
var q = context.Orders.Count();
2. 条件形式
返回中客户为伦敦的数量。
var q = context.Customers.Count(p => p.City == "London");
LongCount
说明:用于返回集合中元素的个数,返回Long类型,不延迟,可用于返回元素个数比较的集合,可视情况可以用LongCount来统计元素个数,返回Login类型比较精确。生成的SQL语句为SELECT COUNT_BIG(*) FROM。
var q = context.Customers.LongCount();
Sum
说明:用于返回集合数值类型元素之和,集合中的元素应为INT类型。不延迟。生成SQL语句为SELECT SUM(...) FROM
1. 简单形式
返回订单的总运费:
var q = context.Orders.Select(n => n.Freight).Sum();
2. 映射形式
返回商品的订货总数:
var q = context.Products.Sum(n => n.UnitsOnOrder);
Min
说明:返回集合中元素的最小值。不延迟。生成的SQL语句SELECT MIN(…) FROM
1. 简单形式
返回商品价格最低的元素:
var q = context.Orders.Select(n => n.Freight).Min();
2. 映射形式
返回订单中运费最低的元素:
var q = context.Orders.Min(o => o.Freight);
3. 组合形式
查找每个类别中单价最低的元素:
var q = from p in context.Products
group p by p.CategoryID into t
select new
{
CategoryID = t.Key,
Cheapest = from p2 in t where p2.UnitPrice == t.Min(p3 => p3.UnitPrice) select p2
};
Max
说明:返回集合中元素的最大值。不延迟。生成的SQL语句为 SELECT MAX(*) FROM
1. 简单形式
返回商品单价最大的元素:
var t = db.Products.Select(n => n.UnitPrice).Max();
2. 映射形式
var q = db.Products.Max(p => p.UnitPrice);
3. 组合形式
查找每个类别中单价最大的元素:
var categories =
from p in db.Products
group p by p.CategoryID into g
select new {
g.Key,
MostExpensiveProducts =
from p2 in g
where p2.UnitPrice == g.Max(p3 => p3.UnitPrice)
select p2
Avg
说明:用于返回集合中数值类型的平均值,集合应为数值类型集合。返回Double类型,不延迟。生成的SQL语句为SELECT AVG(...) FROM
1. 简单形式
返回商品价格的平均值:
var t = db.Products.Select(p => p.UnitPrice).Average();
2. 映射形式
var t = db.Products.Average(p => p.UnitPrice);
3. 组合形式
查找每个类别中单价高于该类别平均单价的产品:
var t = from c in db.Products
group c by c.CategoryID into g
select new
{
CategoryID = g.Key,
Price = from p in g where p.UnitPrice >= g.Average(n => n.UnitPrice) select p
};
LINQ to SQL语句(2)Count/Sum/Min/Max/Avg操作符的更多相关文章
- linq语法之select distinct Count Sum Min Max Avg
原文来自:http://www.50cms.com/Pages_13_72.aspx 本篇详细说明linq中的Select和Count/Sum/Min/Max/Avg等的用法. Select/Dist ...
- linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符)
Group By/Having操作符 适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in ...
- linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符) (转帖)
http://wenku.baidu.com/link?url=2RsCun4Mum1SLbh-LHYZpTmGFMiEukrWAoJGKGpkiHKHeafJcx2y-HVttNMb1BqJpNdw ...
- [转]linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符)
本文转自:http://www.cnblogs.com/jack-liang/archive/2011/03/22/1991554.html Group By/Having操作符 适用场景:分组数据, ...
- LINQ to SQL 语句(3) 之 Count/Sum/Min/Max/Avg
LINQ to SQL 语句(3) 之 Count/Sum/Min/Max/Avg [1] Count/Sum 讲解 [2] Min 讲解 [3] Max 讲解 [4] Average 和 Agg ...
- LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg (转)
Select/Distinct操作符 适用场景:o(∩_∩)o… 查询呗. 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也 ...
- [转]LINQ语句之Select/Distinct和Count/Sum/Min/Max/Avg
在讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ ...
- Linq-语句之Select/Distinct和Count/Sum/Min/Max/Avg
上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to Data ...
- LINQ to SQL Count/Sum/Min/Max/Avg Join
public class Linq { MXSICEDataContext Db = new MXSICEDataContext(); // LINQ to SQL // Count/Sum/Min/ ...
随机推荐
- ios开发-Object-C可变参数函数
简介 一个可变参数函数是指一个函数拥有不定的参数,即为一个函数可接收多个参数.有时我们会遇到一些算术问题需要用到,比如是计算传入参数的总和,字符串的连接或是其它操作过程,我们在 OC 里也经常使用,最 ...
- WinForm下的键盘事件(KeyPress、KeyDown)及如何处理不响应键盘事件
KeyDown事件用来处理功能键:F1 F2 F3... keyPress事件用来处理字符比如说:A B C... 1 2 3... 注:处理该事件时,需要先将窗体的 KeyPreview=true; ...
- fatfs文件系统f_lseek追加文件
http://home.eeworld.com.cn/my/space-uid-430378-blogid-74720.html 这个时候我以为读出的数据应该是stm32f107学习!!!文件系统学习 ...
- 怎么使用Firefox的RestClient
- Mybatis(六):spring与mybatis三种整合方法
1.采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean. spring-mybatis.xml: <?xml ve ...
- Redis(八):spring data redis 理解
前言 Spring Data Redis project,应用了Spring概念来开发使用键值形式的数据存储的解决方案.我们(官方)提供了一个 "template" ,这是一个高级 ...
- 【Android】13.0 第13章 创建和访问SQLite数据库—本章示例主界面
分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 Android 内置了三种数据存取方式:SQLite数据库.文件.SharedPreferences. 这一章我们 ...
- jQuery 效果 - slideToggle() 方法
实例 通过使用滑动效果,在显示和隐藏状态之间切换 <p> 元素: $(".btn1").click(function(){ $("p").slide ...
- Java Mail(三):Session、Message详解
http://blog.csdn.net/ghsau/article/details/17909093 ************************************* 本文来自:高爽|Co ...
- 华中农业大学校赛 I Catching Dogs
Catching Dogs Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1140 Solved: 298[Submit][Status][Web B ...