LinQ语句用group by实现分组

用group by into进行分组

(作者:邱名涛,撰写时间:2019年1月16日)

关键字说明
from指定范围变量和数据源
where根据bool表达式从数据源中筛选数据
select指定查询结果中的元素所具有的类型或报答形式
group(对查询结果按照键/值执行分组)
into提供了一个标识符,它可以充当对join、group或select 子句结果的引用
orderby对查询出的元素执行排序ascending /descending
join按照两个指定匹配条件对等连接两个数据源

操作代码:
在这里插入图片描述
//通过上面listDateTime的查询方法,将数据查询出来后,进行下面的分组。
//group tb by tb.StartTime1声明你要分组的是哪张表,什么类型!然后创建一个变量去接收。
//tb=表 、tb.StartTime1=分组字段、GrMarketingDate=新的变量

group tb by tb.StartTime1 into GrMarketingDate
                        select new ShangPinVo
                        {
                            marketingID = GrMarketingDate.OrderByDescending(m => m.MarketingSubdivideID).FirstOrDefault().marketingID,
                            StartTime1 = GrMarketingDate.OrderByDescending(m => m.MarketingSubdivideID).FirstOrDefault().StartTime1,//相同的日期
                            Number = GrMarketingDate.Sum(m => m.Number),//相同的物品销售数
                            MarketingPrice = GrMarketingDate.Sum(m => m.MarketingPrice),//相同的物品销售金额
                            Stock = GrMarketingDate.Sum(m => m.Stock),//成本金额
                        }).ToList();

效果演示:
在这里插入图片描述

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LINQ是.NET Framework中用于查询对象的语言集成查询(Language Integrated Query)技术,可以对集合、数组、列表、数据库等数据源进行查询。在LINQ中,可以使用group by子句对查询结果进行分组。 假设我们有一个包含学生信息的列表,每个学生有姓名和年龄两个属性,我们可以使用LINQgroup by子句按照年龄对学生进行分组,示例代码如下: ``` List<Student> students = new List<Student>(); // 添加学生信息 students.Add(new Student { Name = "小明", Age = 18 }); students.Add(new Student { Name = "小红", Age = 19 }); students.Add(new Student { Name = "小张", Age = 18 }); students.Add(new Student { Name = "小李", Age = 19 }); students.Add(new Student { Name = "小刚", Age = 20 }); // 使用LINQgroup by子句按照年龄对学生进行分组 var result = from s in students group s by s.Age into g select new { Age = g.Key, Students = g }; // 遍历结果输出 foreach (var group in result) { Console.WriteLine("年龄为 {0} 的学生有:", group.Age); foreach (var student in group.Students) { Console.WriteLine(student.Name); } } ``` 在这个示例中,我们使用了group by子句来按照学生的年龄对学生信息进行分组。在group by子句中,我们首先指定要分组的属性,这里是学生的年龄,然后使用into关键字将分组结果存储到一个新的变量g中。最后,我们使用select关键字创建一个新的匿名类型,包含分组的关键字Age和分组中的学生列表Students。最终,我们遍历结果,输出每个年龄分组中的学生姓名。 需要注意的是,在使用group by子句时,需要注意分组的顺序,因为分组的顺序影响了结果的排序。同时,group by子句还可以与其他LINQ子句一起使用,例如where、select等,从而进行更复杂的查询。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值