使用场景

类似于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操作符的更多相关文章

  1. 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 ...

  2. linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符)

    Group By/Having操作符 适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in ...

  3. linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符) (转帖)

    http://wenku.baidu.com/link?url=2RsCun4Mum1SLbh-LHYZpTmGFMiEukrWAoJGKGpkiHKHeafJcx2y-HVttNMb1BqJpNdw ...

  4. [转]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操作符 适用场景:分组数据, ...

  5. 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 ...

  6. LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg (转)

    Select/Distinct操作符 适用场景:o(∩_∩)o… 查询呗. 说明:和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后并把子句中的变量也 ...

  7. [转]LINQ语句之Select/Distinct和Count/Sum/Min/Max/Avg

    在讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ ...

  8. Linq-语句之Select/Distinct和Count/Sum/Min/Max/Avg

    上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to Data ...

  9. LINQ to SQL Count/Sum/Min/Max/Avg Join

    public class Linq { MXSICEDataContext Db = new MXSICEDataContext(); // LINQ to SQL // Count/Sum/Min/ ...

随机推荐

  1. ios开发-Object-C可变参数函数

    简介 一个可变参数函数是指一个函数拥有不定的参数,即为一个函数可接收多个参数.有时我们会遇到一些算术问题需要用到,比如是计算传入参数的总和,字符串的连接或是其它操作过程,我们在 OC 里也经常使用,最 ...

  2. WinForm下的键盘事件(KeyPress、KeyDown)及如何处理不响应键盘事件

    KeyDown事件用来处理功能键:F1 F2 F3... keyPress事件用来处理字符比如说:A B C... 1 2 3... 注:处理该事件时,需要先将窗体的 KeyPreview=true; ...

  3. fatfs文件系统f_lseek追加文件

    http://home.eeworld.com.cn/my/space-uid-430378-blogid-74720.html 这个时候我以为读出的数据应该是stm32f107学习!!!文件系统学习 ...

  4. 怎么使用Firefox的RestClient

  5. Mybatis(六):spring与mybatis三种整合方法

    1.采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean. spring-mybatis.xml: <?xml ve ...

  6. Redis(八):spring data redis 理解

    前言 Spring Data Redis project,应用了Spring概念来开发使用键值形式的数据存储的解决方案.我们(官方)提供了一个 "template" ,这是一个高级 ...

  7. 【Android】13.0 第13章 创建和访问SQLite数据库—本章示例主界面

    分类:C#.Android.VS2015: 创建日期:2016-02-26 一.简介 Android 内置了三种数据存取方式:SQLite数据库.文件.SharedPreferences. 这一章我们 ...

  8. jQuery 效果 - slideToggle() 方法

    实例 通过使用滑动效果,在显示和隐藏状态之间切换 <p> 元素: $(".btn1").click(function(){ $("p").slide ...

  9. Java Mail(三):Session、Message详解

    http://blog.csdn.net/ghsau/article/details/17909093 ************************************* 本文来自:高爽|Co ...

  10. 华中农业大学校赛 I Catching Dogs

    Catching Dogs Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1140  Solved: 298[Submit][Status][Web B ...