程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> LINQ to SQL語句(3)之Count/Sum/Min/Max/Avg

LINQ to SQL語句(3)之Count/Sum/Min/Max/Avg

編輯:關於.NET

[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

說明:根據輸入的表達式獲取聚合值;不延遲。即 是說:用一個種子值與當前元素通過指定的函數來進行對比來遍歷集合中的元素 ,符合條件的元素保留下來。如果沒有指定種子值的話,種子值默認為集合的第 一個元素。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved