Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle SQL:como encontrar apenas o registro de um grupo


Usar agregação:
select foreignKey, min(primaryKey)
from t
group by foreignKey;

Se você quiser um valor aleatório, você pode usar o keep sintaxe:
select foreignKey,
       min(primaryKey) keep (dense_rank first order by dbms_random.random)
from t
group by foreignKey;

E se você tivesse muitas colunas, você poderia usar row_number() ou uma subconsulta correlacionada:
select t.*
from t
where t.primarykey = (select min(t2.primarykey) from t t2 where t2.foreignkey = t.foreignkey);