博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg
阅读量:4509 次
发布时间:2019-06-08

本文共 2274 字,大约阅读时间需要 7 分钟。

摘要:这个系列的第三篇,讲解Count/Sum/Min/Max/Avg操作符用法。
[1] Count/Sum讲解
[2] 
[3] 
[4] 

本系列文章导航

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            where p2.UnitPrice > g.Average(p3 => p3.UnitPrice)            select p2    };

Aggregate

说明:根据输入的表达式获取聚合值;不延迟。即是说:用一个种子值与当前元素通过指定的函数来进行对比来遍历集合中的元素,符合条件的元素保留下来。如果没有指定种子值的话,种子值默认为集合的第一个元素。

转载于:https://www.cnblogs.com/CharlesGrant/p/3640593.html

你可能感兴趣的文章
.net实现支付宝在线支付
查看>>
centos7 swoole 三步搞定全部
查看>>
noip2014day1题解
查看>>
Excel:一些方法的理解
查看>>
【转】在RHEL上升级Python
查看>>
java:环境变量设置
查看>>
Servlet的学习之Response响应对象(3)
查看>>
基础知识回顾——上下文管理器
查看>>
ARM(RISC)和x86(CISC)的技术差异
查看>>
第3章 对象基础
查看>>
文件压缩与解压缩
查看>>
android 搜索自动匹配关键字并且标红
查看>>
Android ViewPager使用详解
查看>>
python爬虫之scrapy的pipeline的使用
查看>>
mysql 1366错误
查看>>
mfc 导出数据保存成excel和txt格式
查看>>
让Android中的webview支持页面中的文件上传
查看>>
UML基础
查看>>
Oracle 从Dump 文件里提取 DDL 语句 方法说明
查看>>
实现winfrom进度条及进度信息提示
查看>>