with t(store, telno) as ( select 'A' , 1 from dual union all select 'A' , 1 from dual union all select 'A' , 2 from dual union all select 'A' , 3 from dual union all select 'B' , 2 from dual ) select distinct store, telno from ( select dense_rank() over(partition by store order by telno) rn, t.* from t ) where rn <= 2