Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Linq到sqlmax问题_Sql Server_Linq To Sql - Fatal编程技术网

Sql server Linq到sqlmax问题

Sql server Linq到sqlmax问题,sql-server,linq-to-sql,Sql Server,Linq To Sql,如果我有类似以下的表格: col1 col2 col3 col4 apple 1 35 1 apple 1 38 0 apple 2 27 1 orange 1 50 0 orange 2 51 1 我想按1和2列进行分组,最大值为col3。最后,我想得到: app

如果我有类似以下的表格:

col1         col2    col3   col4
apple        1        35    1    
apple        1        38    0    
apple        2        27    1    
orange       1        50    0    
orange       2        51    1    
我想按1和2列进行分组,最大值为col3。最后,我想得到:

apple        1        38    0  
apple        2        27    1    
orange       1        50    0 
orange       2        51    1  
对此的linq查询是什么?

第二次尝试

var subquery = 
(from r in table group r by new { r.col1, r.col2} into results
   select new 
   { 
      results.Key.col1, 
      results.Key.col2, 
       MaxCol3 = results.Max(i=>i.col3)
   }
  ) ;


var query2 = 
    (from r in subquery1 
       select new 
       { 
       r.col1 , 
       r.col2 , 
       r.MaxCol3 , 
       col4 = (from x in subquery1 
            where r.col1 == x.col1 && r.col2 == x.col2 && x.col3 == r.MaxCol3 
            select x.col4).First()
       }
   );  
我从未使用过这种语法,但我认为你也可以这样做

 (from r in table group r by new { r.col1, r.col2} into results
   let MaxCol3 = results.Max(i=>i.col3)
   select new 
    { 
      results.Key.col1, 
      results.Key.col2, 
       MaxCol3 ,
      col4 = results.First(i=>i.col3 == MaxCol3).col4
    }
  ) ;