是要这样子的吗?with t as ( select 1 as a, 2 as b, 3 as c from dual union all select 1,2,4 from dual union all select 1,2,8 from dual union all select 2,3,2 from dual union all select 2,3,8 from dual union all select 3,3,9 from dual union all select 3,3,8 from dual ) select a ,max(b),max(c) from t group by awith t as ( select 1 as a, 2 as b, 3 as c from dual union all select 1,2,4 from dual union all select 1,2,8 from dual union all select 2,3,2 from dual union all select 2,3,8 from dual union all select 3,3,9 from dual union all select 3,3,8 from dual ) select a ,max(b),max(c) from t group by aA MAX(B) MAX(C) ---------------------- ---------------------- ---------------------- 1 2 8 2 3 8 3 3 9
ls上的,你说这样行不行? select * from table where c in(select max(c) from (select * from table where b in(select max(b) from table group by a))as table2 group by a);
select 1 as a, 2 as b, 3 as c from dual
union all
select 1,2,4 from dual
union all
select 1,2,8 from dual
union all
select 2,3,2 from dual
union all
select 2,3,8 from dual
union all
select 3,3,9 from dual
union all
select 3,3,8 from dual
)
select a ,max(b),max(c) from t
group by awith t as (
select 1 as a, 2 as b, 3 as c from dual
union all
select 1,2,4 from dual
union all
select 1,2,8 from dual
union all
select 2,3,2 from dual
union all
select 2,3,8 from dual
union all
select 3,3,9 from dual
union all
select 3,3,8 from dual
)
select a ,max(b),max(c) from t
group by aA MAX(B) MAX(C)
---------------------- ---------------------- ----------------------
1 2 8
2 3 8
3 3 9
select * from table where c in(select max(c) from (select * from table where b in(select max(b) from table group by a))as table2 group by a);
group by a