1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| WITH MaTable AS
(
select 'a' as col1, 1000 as col2, 10 as col3 from dual union all
select 'a' , 980 , 9 from dual union all
select 'a' , 970 , 8 from dual union all
select 'a' , 1100 , 11 from dual union all
select 'b' , 200 , 10 from dual union all
select 'b' , 3000 , 1 from dual union all
select 'c' , 700 , 8 from dual union all
select 'c' , 800 , 9 from dual union all
select 'c' , 900 , 10 from dual union all
select 'd' , 1000 , 10 from dual union all
select 'd' , 1100 , 11 from dual union all
select 'd' , 900 , 9 from dual union all
select 'd' , 1000 , 10 from dual
)
select col1, max(col2) as col2,
max(col3) keep(dense_rank first order by col2 desc) as col3
from MaTable
group by col1
order by col1 asc;
COL1 COL2 COL3
a 1100 11
b 3000 1
c 900 10
d 1100 11 |
Partager