SQL> create table bbc(region varchar2(10), name varchar2(10), population number(3)) 2 / Table created. SQL> insert into bbc values('a1', 'b1', 100) 2 / 1 row created. SQL> insert into bbc values('a1', 'b2', 50) 2 / 1 row created. SQL> insert into bbc values('a2', 'c1', 30) 2 / 1 row created. SQL> select region, name, population from bbc a where (region, population) in (select region, max(population) from bbc group by region) 2 / REGION NAME POPULATION ---------- ---------- ---------- a1 b1 100 a2 c1 30 SQL>