使用场景

类似于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. Linux常用命令整理(脑图)

  2. Eclipse wtp project dependent project facets问题

    wtp project会编译成一个war包,但在eclipse里debug时,依赖的project没有自动编译成jar包并打包到war的lib目录里. 原因:依赖project的facets未设置或未 ...

  3. sqlserver学习笔记(五)—— 查询

    查询的基本语法结构: select 列名/* from 表名 [where 限制条件] [order by 排序] 1.查询全部的行和列: select * from 表名 2.查询部分行和列:(部分 ...

  4. Linux命令-帮助命令:man

    man ls 查看ls命令的帮助信息(输出结果和less命令一样,需要空格,回车,,上箭头,下箭头,PgUp,PgDn,q等方式浏览) 注意:由于这个文件信息量比较大,需要查找某一个字符,输入/,输入 ...

  5. 转 Android Activity之间动画完整版详解

    标签:Android Activity动画详解 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mzh3344258.blog.5 ...

  6. Android异步任务处理框架AsyncTask源代码分析

    [转载请注明出处:http://blog.csdn.net/feiduclear_up CSDN 废墟的树] 引言 在平时项目开发中难免会遇到异步耗时的任务(比方最常见的网络请求).遇到这样的问题.我 ...

  7. Java程序(非web)slf4j整合Log4j2

    一.依赖包准备 //slf4j项目提供 compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' //log4j2项目提供 co ...

  8. centos vsftp 500 OOPS: cannot change directory

    CentO中把vsftpd安裝配置好了,以為大功告成,但用FTP 登入出現下錯誤:500 OOPS: cannot change directoryCentOS系統安裝了SELinux,因為預設下是沒 ...

  9. xdebug安装教程

    自动分析应该下载的文件: http://xdebug.org/wizard.php

  10. [svc]centos6系统安装(分区)及其18处调优调优最佳实战

    系统下载 在阿里云下载 可以使用最小化的,也可以使用dvd版(CentOS-6.7-x86_64-bin-DVD1.iso),其中dvd版方便安装过程中选包. 一. 系统安装 1,时区选择 2,磁盘分 ...