LINQ  to SQL 语句(3) 之  Count/Sum/Min/Max/Avg

[1] Count/Sum 讲解

[2] Min 讲解

[3] Max 讲解

[4] Average 和 Aggregate 讲解

Count/Sum/Min/Max/Avg 操作符

适用场景: 统计数据吧,比如统计一些数据的个数,求和,最小值,最大值,平均数。

Count

说明:返回集合中的元素个数,返回 INT 类型;不延迟。生成  SQL 语句为:SELECT COUNT(*)

FROM

1.简单形式:

得到数据库中客户 的数量:

var q = db.Customers.Count();

2.带条件形 式:

得到数据库中未断货产品的数量:

var q = db.Products.Count(p => !p.Discontinued);

LongCount

说明 :返回集合中的元素个数,返回 LONG 类型;不延迟。对于元素个数较多的集合可 视

情况可以选用 LongCount 来统计元素个数,它返回 long 类型,比较精确。生成  SQL 语句为:

SELECT COUNT_BIG(*) FROM

var q = db.Customers.LongCount();

Sum

说明:返回集合中数值类型元素 之和,集合应为 INT 类型集合;不延迟。生成 SQL 语句为:

SELECT SUM(„) FROM

1.简单形式:

得到所有订单的总运费:

var q = db.Orders.Select(o => o.Freight).Sum();

2.映射形式:

得 到所有产品的订货总数:

var q = db.Products.Sum(p => p.UnitsOnOrder);

Min

说明:返回集合中元素的最小值;不延迟。 生成 SQL 语句为:SELECT MIN(„) FROM

1.简单形式:

查找任 意产品的最低单价:

var q = db.Products.Select(p => p.UnitPrice).Min();

2.映射形式:

查找任意订单的最低运费:

var q = db.Orders.Min(o => o.Freight);

3.元素 :

查找每个类别中单价最低的产品:

var categories =

from p in db.Products

group p by p.CategoryID into g

select new {

CategoryID = g.Key,

CheapestProducts =

from p2 in g

where p2.UnitPrice == g.Min(p3 => p3.UnitPrice)

select p2

};

Max

说明:返回集合中元素的最大值;不延 迟。生成 SQL 语句为:SELECT MAX(„) FROM

1.简单形式:

查 找任意雇员的最近雇用日期:

var q = db.Employees.Select(e => e.HireDate).Max();

2.映射形式:

查找任意产品的最大库存量:

var q = db.Products.Max(p => p.UnitsInStock);

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

};

Average

说明:返回集合中的数值类型元素的平均值。集合应为数字类型集合,其返回 值类型为

double;不延迟。生成 SQL 语句为:SELECT AVG(„) FROM

1.简单形式:

得到所有订单的平均运费:

var q = db.Orders.Select(o => o.Freight).Average();

2.映射形式:

得到所有产品的平均单价:

var q = db.Products.Average(p => p.UnitPrice);

3.元素:

查找每个类别中单价高于该类别平 均单价的产品:

var categories =

from p in db.Products

group p by p.CategoryID into g

select new {

g.Key,

ExpensiveProducts =

from p2 in g

};

Aggregate

where p2.UnitPrice > g.Average (p3 => p3.UnitPrice)

select p2

说明:根据输入的表达式获取聚合值;不延迟。即 是说:用一个种子值与当前元素通过指

定的函数来进行对比来遍历集合中的元素 ,符合条件的元素保留下来。如果没有指定种子

值的话,种子值默认为集合的第 一个元素。

LINQ to SQL 语句(3) 之 Count/Sum/Min/Max/Avg的更多相关文章

  1. LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg

    适用场景:统计数据吧,比如统计一些数据的个数,求和,最小值,最大值,平均数. Count 说明:返回集合中的元素个数,返回INT类型:不延迟.生成SQL语句为:SELECT COUNT(*) FROM ...

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

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

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

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

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

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

  5. JS中Float类型加减乘除 修复 JQ 操作 radio、checkbox 、select LINQ to SQL:Where、Select/Distinct LINQ to SQL Count/Sum/Min/Max/Avg Join

    JS中Float类型加减乘除 修复   MXS&Vincene  ─╄OvЁ  &0000027─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄Ov ...

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

  7. LINQ Count/Sum/Min/Max/Avg

    参考:http://www.cnblogs.com/peida/archive/2008/08/11/1263384.html Count/Sum/Min/Max/Avg用于统计数据,比如统计一些数据 ...

  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语句(2)Count/Sum/Min/Max/Avg操作符

    使用场景 类似于SQL中的聚合函数,用于统计数据,不延迟.如返回序列中的元素数量.求和.最小值.最大值.求平均值. Count 说明:用于返回集合中元素的个数,返回Int类型,生成SQL语句为SELE ...

随机推荐

  1. 机器学习笔记之人工神经网络(ANN)

    人工神经网络(ANN)提供了一种普遍而且实际的方法从样例中学习值为实数.离散值或向量函数.人工神经网络由一系列简单的单元相互连接构成,其中每个单元有一定数量的实值输入,并产生单一的实值输出. 上面是一 ...

  2. hdu 5265 pog loves szh II STL

    pog loves szh II Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  3. rails 调试

    1. ruby-debug, ruby-debug19 没人维护,bug多.Ruby 1.9.3后不推荐使用 2. debugger ruby 1.9.3后的选择,功能强大,缺点是没有语法高亮. 项目 ...

  4. 用python写makefile

    温馨提示:阅读本文的同学最好能了解makefile和python的编写规则. 不懂的同学能够先保存在收藏夹.以便日后查看. 事实上之前我一直非常懒,我不想了解makefile规则.由于在linux下开 ...

  5. 使用Url.Routeurl获取url值。

    1,获取url值.         public ActionResult About()         {            RouteValueDictionary RVD = new Ro ...

  6. C# Redis分布式缓存

    C# Redis实战(七) 七.修改数据 在上一篇 C# Redis实战(六)中介绍了如何查询Redis中数据,本篇将介绍如何修改Redis中相关数据.大家都知道Redis是key-value型存储系 ...

  7. boa安装

    Boa 下载地址:http://www.boa.org/boa-0.94.13.tar.gz 1.解压生成Makefile tar xzf boa-0.94.13.tar.gz #解压 cd boa- ...

  8. IPC——匿名管道

    Linux进程间通信——使用匿名管道 在前面,介绍了一种进程间的通信方式:使用信号,我们创建通知事件,并通过它引起响应,但传递的信息只是一个信号值.这里将介绍另一种进程间通信的方式——匿名管道,通过它 ...

  9. Spring SqlRowSet example--转载

    原文地址:http://www.roseindia.net/tutorial/spring/spring3/jdbc/sqlrowset.html The 'SqlRowSet' is used to ...

  10. 512字节纠错1位的ECC校验码生成演示

    Flash型号: NandFlash型号:TC58NVG2S3ETA00 pagesize: 2KB oobsize  : 64B blocksize : 128K 关于ECC可以参考:http:// ...