如何对具有多列的表中的数据进行分组[重复]

Posted

技术标签:

【中文标题】如何对具有多列的表中的数据进行分组[重复]【英文标题】:How to group data from table with multiple columns [duplicate] 【发布时间】:2014-11-28 14:34:18 【问题描述】:

我正在尝试以这种方式使用多列对我的数据进行分组:

var groupedCustomers = listToProcess.GroupBy(cn => cn.CUST_NAME).Select(g => g.ToList()).ToList();

像这样分组,我对我得到的结果很满意,因为我可以遍历所有对象并获取它们的所有属性。但是,由于我应该使用两个字段(cust_name 和 cust_address)对表数据进行分组,所以这就是我想要做的:

var groupedCustomers = listToProcess.GroupBy(cn => cn.CUST_NAME, ca => ca.CUST_ADDRESS).Select(g => g.ToList()).ToList();

这样的处理也可以工作但是对于每个对象,我只得到地址属性。

还有其他方法吗?

【问题讨论】:

【参考方案1】:

您可以使用匿名类型作为composite key:

var groupedCustomers = listToProcess
       .GroupBy(cn => new  cn.CUST_NAME, cn.CUST_ADDRESS )
       .Select(g => g.ToList()).ToList();

【讨论】:

【参考方案2】:

试试

   var groupedCustomers = listToProcess
           .GroupBy(cn => new CUST_NAME = cn.CUST_NAME, CUST_ADDRESS  = cn.CUST_ADDRESS )
           .Select(g => g.ToList()).ToList();

【讨论】:

以上是关于如何对具有多列的表中的数据进行分组[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在工作表中动态创建具有列数的数组,以删除多列中的重复项

如何通过 Eloquent 中具有多对多关系的外部表中的列聚合进行分组?

如何使用 pl/sql 中的游标将多列数据插入包含单列的表中?

基于多列中的直接和间接相似性对变量进行分组的快速方法

使用 ibatis 将字符串列表插入到多列中的表中

如何根据多列的顺序对 PostgreSQL 中的聚合进行分组?