• Linq to Sql 聚合查询


    //输出体重最大的同学,并要求最大体重得大于39,并按照体重大下,对分组结果进行排序。
                        var result = from query in linq.Student
                                     group query by query.ClassID into gS
                                     where gS.Max<Student>(s => s.StudentWeigth) > 39
                                     orderby gS.Max<Student>(s => s.StudentWeigth) descending
                                     select new
                                     {
                                         ClassID = gS.Key,
                                         MaxWeight = gS.Max<Student>(s => s.StudentWeigth)
                                     };
    
                        var result = from query in linq.Student
                                    group query by query.ClassID into gS
                                    
                                     let mw = gS.Max<Student>(s => s.StudentWeigth)
    
                                    where mw > 39
                                    select new
                                    {
                                        ClassID = gS.Key,
                                        MaxWeight = mw
                                    };
                        foreach (var item in result)
                        {
                            Response.Write(string.Format("classid = {0} studentmaxweight = {1}", item.ClassID, item.MaxWeight));
                        }
    
    //查询身高大于132并且体重大于30的Student,并按照StudentID升序排序,按照classID降序排序
    var query = from s in db.Students
                where s.HeightInCm > 132 && s.WeightInKg > 30
                orderby s.StudentID ascending, s.ClassID descending
                select s;
    
    //对Student表按照ClassID和Hometown两个字段进行分组,并输出每个班级中某个地方的学生数
    var query = from s in db.Students
                            group s by new { s.ClassID, s.Hometown } into gS
                            let cn = gS.Count<Student>()
                            select new
                            {
                                ClassID = gS.Key.ClassID,
                                Hometown = gS.Key.Hometown,
                                Count = cn
                            };
                foreach (var item in query)
                {
                    Console.WriteLine("class id = {0} hometown {1} student count = {2}", item.ClassID, item.Hometown,item.Count);
                }
    
    //在上面的基础上加一点点需求,要求分组后的结果按照count排序
    var query = from s in db.Students
                group s by new { s.ClassID, s.Hometown } into gS
                let cn = gS.Count<Student>()
                orderby cn descending
                select new
                {
                    ClassID = gS.Key.ClassID,
                    Hometown = gS.Key.Hometown,
                    Count = cn
                };
    
  • 相关阅读:
    个人-GIT使用方法
    结对贪吃蛇游戏-结对编项目设计文档
    结对编程项目作业2-开发环境搭建过程
    团队编程项目作业2-团队编程项目设计文档
    结对编程项目作业5
    课后作业-阅读任务-阅读提问-3
    团队编程项目作业3-模块测试过程
    团队编程项目作业3-模块开发过程
    结对编程项目作业4
    课后作业-团队编程项目进度
  • 原文地址:https://www.cnblogs.com/2013likong/p/3490794.html
Copyright © 2020-2023  润新知