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

linq groupby 取每组返点最高的记录
本帖最后由 q107770540 于 2014-04-02 14:45:22 编辑
  
Name From   To       仓位   返点
3U HGH TYN  L 14.9
3U HGH TYN         Q 14.9
3U HGH TYN   E 14.9
3U HGH TYN         V 14.9
EU TSN CGQ Y 0.0
EU TSN CGQ T 0.0
EU TSN CGQ H 0.0
EU TSN CGQ M 0.0

数据库结构是这样的
3U和EU都是航空公司  第二列和第三列是出发到达城市三字码  ,第四列是仓位,最后一列是返点
 两个航空公司航线和仓位可能相同 返点不同,我想根据航司 出发到大城市 仓位来分组  并取出每组里返点最高的那条记录,求大神指点
------解决方案--------------------
GroupBy(x => new { x.航空公司, x.出发, x.到达 }).Select(x => x.Max(y => y.返点))
------解决方案--------------------
var q= db.YourTable.GroupBy(x=>new {x.Name,x.From,x.To,x.仓位}) 
 .Select(g=>new {g.Key.Name,g.Key.From,g.Key.To,g.Key.仓位,top=g.Max(s=>s.返点)});