Linq体验(三)

  聚合函数

//数据库中去重的distinct。在这里是Distinct,是对结果集的去重

        //查看职位类别(查找梁山中好汉的职务)

        var q1 = (from p in cc.userss select p.description).Distinct();

        //sql中的聚合函数 count()

        //sqlcount(*)等同于Count()sqlcount_big(*)等同于LongCount()

        //关于countcount_big的比较请参见其它文档

        //这里很快很直接。//直接取值 

        //全部

        int iCount1 = cc.userss.Count();

        //女好汉的人数

        int iCount2 = cc.userss.Count(p=>p.sex=="");

        long lCount3 = cc.userss.LongCount();

        //Response.Write(iCount2.ToString()); 

        //---------------------------------------------------------------

        //sql中的sum,这里的Sum()

        //Sum是对列取和 

        //对所有好汉薪金求和,两种方式

        var isalary1 = cc.userss.Select(p => p.salary).Sum();

        var isalary2 = cc.userss.Sum(p=>p.salary);

        

        //对女好汉的薪金求和

        var isalary3 = cc.userss.Where(p =>p.sex=="").Sum(p => p.salary);

        //Response.Write(isalary3.ToString());  

        //---------------------------------------------------------------

        //sql中的max,min,average,这里的MaxMinAverage

        //方法同Sum相似       

        //求薪金最高的

        var isalary4 = cc.userss.Max(p => p.salary); 

        //求男好汉中最低薪金的

        var isalary5 = cc.userss.Where(p => p.sex == "").Min(p =>p.salary);

        //Response.Write(isalary5.ToString()); 

        //求女好汉薪金平均值

        var iavsalary = cc.userss.Where(p => p.sex == "").Average(p=>p.salary);

        Response.Write(iavsalary.ToString());

 

       // GridView1.DataSource = q1;

        //GridView1.DataBind();

备注:

Where

过滤;延迟

Select

选择;延迟

Distinct

查询不重复的结果集;延迟

Count

返回集合中的元素个数,返回INT类型;不延迟

LongCount

返回集合中的元素个数,返回LONG类型;不延迟

Sum

返回集合中数值类型元素之和,集合应为INT类型集合;不延迟

Min

返回集合中元素的最小值;不延迟

Max

返回集合中元素的最大值;不延迟

Average

返回集合中的数值类型元素的平均值。集合应为数字类型集合,其返回值类型为double;不延迟

Aggregate

根据输入的表达式获取聚合值;不延迟

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

原文地址:https://www.cnblogs.com/jams742003/p/1574112.html