Vous pouvez utiliser une fonction de fenêtre pour cela.
select column_1, column_2
from (
select column_1, column_2,
row_number() over (partition by column_1 order by column_2) as rn
from the_table
) t
where rn <= 2;
Vous pouvez trouver de nombreux autres exemples pour ce type de problème sous la balise greatest-n-per-group