Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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-如何使用max(聚合)提取所有信息_Sql_Nested_Subquery - Fatal编程技术网

SQL-如何使用max(聚合)提取所有信息

SQL-如何使用max(聚合)提取所有信息,sql,nested,subquery,Sql,Nested,Subquery,有一张非常简单的桌子: NAME1 NAME2 AGE Lars Thomsen 57 Lars Hansen 45 Per Olsen 57 Per Olsen 56 Per Olsen 58 如何编写一个SQL语句来提取每个名字中最年长的名字的所有信息1? 我想要的是这个结果: NAME1 NAME2 AGE Lars Thomsen 57 Per Olsen 58 感谢这个简单的表格(我们称之为t),它

有一张非常简单的桌子:

NAME1   NAME2   AGE
Lars    Thomsen 57
Lars    Hansen  45
Per     Olsen   57
Per     Olsen   56
Per     Olsen   58
如何编写一个SQL语句来提取每个名字中最年长的名字的所有信息1? 我想要的是这个结果:

NAME1   NAME2   AGE
Lars    Thomsen 57
Per     Olsen   58
感谢这个简单的表格(我们称之为
t
),它看起来很简单:

select  t.*
  from  t
  join (select name1, max(age) as max_age
          from t
         group by name1) t_grp
    on t.name1 = t_grp.name1
   and t.age   = t_grp.max_age
如果您使用的是Oracle,它也可能是

select  *
  from  t
 where (name1, age) in 
         (select name1, max(age)
            from t
           group by name1)

如果有相同年龄的复制品呢?