文章出處

適用場景:統計數據吧,比如統計一些數據的個數,求和,最小值,最大值,平均數。

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

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


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()