sql >> Databasteknik >  >> RDS >> Oracle

Oracle SQL:hur man hittar bara rekord från en grupp

Använd aggregering:

select foreignKey, min(primaryKey)
from t
group by foreignKey;

Om du vill ha ett slumpmässigt värde kan du använda keep syntax:

select foreignKey,
       min(primaryKey) keep (dense_rank first order by dbms_random.random)
from t
group by foreignKey;

Och om du hade många kolumner kan du använda row_number() eller en korrelerad underfråga:

select t.*
from t
where t.primarykey = (select min(t2.primarykey) from t t2 where t2.foreignkey = t.foreignkey);



  1. MySQL - GROUP_CONCAT med joins

  2. FREETEXTTABLE har alltid rankningen 0

  3. Åtkomst till MySQL-databasen från mitt VB.NET 2008-projekt

  4. Det går inte att anropa en Oracle-lagrad procedur från SSRS-rapportbyggaren 3.0