zoukankan      html  css  js  c++  java
  • 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和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

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

          select p2

       };

    Aggregate

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

  • 相关阅读:
    Atitit.随时间变色特效 ---包厢管理系统的规划
    Atitit.request http乱码的设计防止 检测与解决最近实践p825 attilax总结.doc
    Atitit.request http乱码的设计防止 检测与解决最近实践p825 attilax总结.doc
    atitit.薄伽梵歌overview  attilax 读后感
    Atitit。 《吠陀》 《梨俱吠陀》overview 经读后感  是印度上古时期一些文献的总称
    Atitit。 《吠陀》 《梨俱吠陀》overview 经读后感  是印度上古时期一些文献的总称
    atitit.薄伽梵歌overview  attilax 读后感
    Atitit 《摩奴法典》overivew 读后感 不是由国王 颁布的,而是 僧侣编制
    Atitit 《摩奴法典》overivew 读后感 不是由国王 颁布的,而是 僧侣编制
    Atitit.执行cli cmd的原理与调试
  • 原文地址:https://www.cnblogs.com/liubo/p/2381544.html
Copyright © 2011-2022 走看看