max和嵌套的sql查询

时间:2017-01-31 20:48:31

标签: sql oracle

我在桌子下面。使用类型版本和名称作为列

Type  version Name
Number  1     Name1
Number  2     Name2
Number  2     Name3
Char    1     Char1

我需要输出类似每种类型的最大版本及其类型和名称。像数字类型中的最大版本是2,其中Char是1。 预期产出

Type   Version Name
Number  2      Name2
Number  2      Name3
Char    1      Char1

我认为我应该使用max(版本)获取最大版本以及如何使用Type过滤它们?请帮我写一个SQL查询。

2 个答案:

答案 0 :(得分:1)

使用分析函数:

select t.*
from (select t.*, rank() over (partition by type order by version desc) as seqnum
      from t
     ) t
where seqnum = 1;

答案 1 :(得分:1)

select Type  ,version, Name
from  (select t.*,rank() over (partition by type order by version desc) as rnk
       from mytable t
       ) t
where  rnk=1