日期:2014-05-20  浏览次数:20684 次

这个查询如何写?
表table1
字段 id,id1,xx,yy,zz

内容

1,101,a,b,c
1,102,c,d,e
2,201,d,f,c

我想得到的结果是

1,102
2,201


也就是说 我想得到groupby id 时 id1最大的数据集

------解决方案--------------------
select id,max(id) from table1 group by id order by id1
------解决方案--------------------
试试:
C# code
var result = table.GroupBy(g => g.id).Select(s => new { id = s.Key, id1 = s.Max(m => m.id1) }).ToList();

------解决方案--------------------
哦,刚才的LINQ查询是凭感觉写的,没有把握。现在我用Northwind来写了个简单的测试,查找某个用户的订单中最大的Freight值,发现我之前写的LINQ查询是正确的。代码和结果如下:
C# code
using (NorthwindEntities db = new NorthwindEntities())
{
    var result = db.Orders.GroupBy(g => g.CustomerID).Select(s => new { cid = s.Key, max = s.Max(m => m.Freight) }).ToList();
    result.ForEach(e => Console.WriteLine("ID:{0},  Freight:{1}", e.cid, e.max));
}

------解决方案--------------------
C# code
var query = from x 
            in db.table1
            group x
                by x.id into g 
            select 
                new { 
                    id = g.id, 
                    id1 = g.Max(y => y.id1)
                };

------解决方案--------------------
var result=db.Table1.GroupBy(t=>t.id).Select(t=>new{id=t.Key,id1=t.Max(s=>s.id1)});
------解决方案--------------------
探讨
表table1
字段 id,id1,xx,yy,zz

内容

1,101,a,b,c
1,102,c,d,e
2,201,d,f,c

我想得到的结果是

1,102
2,201


也就是说 我想得到groupby id 时 id1最大的数据集

------解决方案--------------------
lamda形式的:如下
顺便给排了个序
C# code

var s = entities.table1.GroupBy(c => c.id).OrderBy(c=>c.Key).Select(m => new { m.Key, Max= m.Max(g => g.id1) });

------解决方案--------------------
唉,怎么像看天书一样。。。。