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. hdu 1861-游船出租

    游船出租                                                                                   Time Limit: 1 ...

  2. Android Fragment详解

    一.什么是Fragment Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计.平板电脑的屏幕要比手机的大得多,有更多的 ...

  3. sc7731 Android 5.1 Camera 学习之二 framework 到 HAL接口整理

    前面已经分析过,Client端发起远程调用,而实际完成处理任务的,是Server端的 CameraClient 实例.远程client 和 server是两个不同的进程,它们使用binder作为通信工 ...

  4. CMSIS Example - Signal

    /*---------------------------------------------------------------------------- * RL-ARM - RTX *----- ...

  5. IPv6 相关的工作简介

    这里说明下,仅仅是IPv6在开发板上的相关的工作简介,没有很详细,都是自己一边积累,一边实践的.能帮助其他人最好,也算是给自己做个备忘录. 一.首先说下DHCPv6相关的.这里我使用的是DHCP6s. ...

  6. 用NDK编译lua库

    Android.mk是这样的 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := lua LOCAL_SRC_FILE ...

  7. Swift学习笔记十一

    类与结构体 Swift中,并不要求把自定义类或结构的接口和实现写在不同的文件中.你在一个文件中定义类或结构体,那么这个类或结构体的外部接口就自动可以在其他代码中使用了. 类和结构有很多相似和区别,相同 ...

  8. Effective C++笔记04:设计与声明

    条款18:让接口easy被正确使用,不易被误用 1,好的接口非常easy被正确使用,不easy被误用.你应该在你的全部接口中努力达成这些性质. 2,"促进正使用"的办法包含接口的一 ...

  9. android之多媒体篇(二)

    管理音频焦点 情景:当你的app隐退到后台,而其他也有播放能力的app浮现在前台,这个时候,你可能要暂停你原有app的播放功能,和解除监听Media Button,把控制权交给前台的APP. 这就需要 ...

  10. 生成html的几种方案

    方案1: ///   <summary > ///   传入URL返回网页的html代码 ///   </summary > ///   <param   name=&q ...