使用场景

类似于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
};

最新文章

  1. CSS实现元素水平垂直居中—喜欢对称美,这病没得治
  2. 解决Visual C++ Redistributable for Visual Studio 2015的安装问题
  3. BZOJ3069: [Pa2011]Hard Choice 艰难的选择
  4. SEO和SEM的区别
  5. Ext.grid.CheckboxSelectionModel状态设置
  6. C#最简单最完整的webservice实例
  7. Android 开机启动
  8. having和where的区别
  9. From Disk partition to PostgreSQL installation
  10. android学习笔记二:Intent
  11. Winform控件学习-TreeView - ContextMenuStrip
  12. nyoj-257 郁闷的C小加(一) 前缀表达式变后缀
  13. Windows下用Eclipse搭建C/C++开发环境
  14. CSDN 自动评论
  15. 分享毕业学生“ERP实施project联赛”总结,是肺腑之言——知识是人的价值的体现,每门课程是有意义的学校纪律
  16. vue.js的学习中的简单案例
  17. Scyther-manual ------BNF
  18. SWUST OJ(599)
  19. LVS+nginx负载均衡知识点1
  20. 31)django-序列化

热门文章

  1. windows下安装redis及其客户端
  2. kong 插件开发分析
  3. 如何在IIS7或IIS7.5中导入导出站点及应用程序池. -摘自网络
  4. xdebug安装教程
  5. Unity3D动画面板编辑器状态属性对照表
  6. PCH简单介绍
  7. @XStreamAlias使用
  8. javascript的单线程
  9. ng-class中的if else判断
  10. linux下编译 静态库、动态库,动态库依赖静态库