sql >> Database >  >> RDS >> Oracle

Hoe unieke waarden uit een tabel selecteren?

Deze zoekopdracht zal unieke status_id's retourneren, maar alleen als de combinatie van die status_id en elk van die andere velden ook uniek is. U kunt de unieke status_id's selecteren, maar u kunt niet alle waarden van de andere velden retourneren als er meer dan één combinatie is voor elke status_id.

[bewerken]

Als u alleen het eerste record voor elke status wilt:

select 
  status_id, schedule_id, cassay_id, time_of_day, days, notify_to_addresses, active 
from
  (select 
    row_number() over (partition by status_id order by 1) as number, 
    status_id, schedule_id, cassay_id, time_of_day, days, notify_to_addresses, active 
  FROM ordertest)
where
  number = 1

In plaats van row_number , dense_rank en rank worden ook gebruikt voor verschillende soorten nummering, maar in dit geval wil je echt een enkele rij en rijnummer is voldoende.

Niet zeker order by is verplicht. Zo niet, dan kun je het weglaten. Als dit het geval is, kunt u een dummy-waarde opgeven of een specifiek veld opgeven dat u als 'de eerste rij' wilt gebruiken. Versnel bijvoorbeeld order by schedule_id om de laagste schedule_id voor elke status_id te retourneren.



  1. Fout tijdens installatie - Database-initialisatie mislukt

  2. Tekst zoeken en vervangen in mysql-tabel

  3. Hoe Mysql Race-voorwaarden op de juiste manier te vermijden?

  4. Controleren of een bepaalde datum tussen een reeks datums past