Oracle SQL 쿼리 질문 (group by)

장준영의 이미지

쿼리 문하나 만들어주십시오

c1 c2 c3
--------
 A  1  6  <---
 A  2  5
 A  3  4
 B  1  5
 B  2  6
 B  3  7
 B  4  8  <---

c1에 따라 group by한 후, 각각의 그룹에서 c3의 값이 가장 큰
행을 가져오고 싶을 때(단, c3는 unique)

즉, 원하는 결과는

c1 c2 c3
--------
 A  1  6
 B  4  8

c1, c3외의 다른 컬럼들(위에서는 c2)도 반드시 결과에 포함되어야 합니다.
Oracle을 사용하고 있고, 쿼리는 되도록 간결하였으면 좋겠습니다..
간결한 쿼리를 만드는게 목적입니다..
읽어주셔서 감사합니다.

snowtree의 이미지

select c1, c2, c3
from c,
(select c1 c_d1, max(c3) d_c3 from c group by c1) D
where c.c1 = d.c_d1 and c.c3 = d.d_c3

===============================================
create table C (c1 char(1), c2 number(1), c3 number(1));

insert into c values ('A',1,6);
insert into c values ('A',2,5);
insert into c values ('A',3,4);
insert into c values ('B',1,5);
insert into c values ('B',2,6);
insert into c values ('B',3,7);
insert into c values ('B',3,8 );

雪害木
MSN:snowtree73@hotmail.com