sql >> Database teknologi >  >> RDS >> Oracle

Hvordan vælger man unikke værdier fra en tabel?

Denne forespørgsel vil returner unikke status_id'er, men kun hvis kombinationen af ​​disse status_id og hvert af disse andre felter også er unikt. Du kan vælge de unikke status_id'er, men du kan ikke returnere alle værdier i de andre felter, hvis der er mere end én kombination for hvert status_id.

[rediger]

Hvis du kun vil have den første post for hver status:

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

I stedet for row_number , dense_rank og rank bruges også til forskellige slags nummerering, men i dette tilfælde vil du virkelig have en enkelt række, og rækkenummer vil være tilstrækkeligt.

Ikke sikker order by er obligatorisk. Hvis ikke, kan du udelade det. Hvis det er det, kan du angive en dummy-værdi eller angive et specifikt felt, som du vil bruge som 'den første række'. For eksempel, fremskynd order by schedule_id for at returnere det laveste schedule_id for hvert status_id.



  1. Researching PostGIS slowness (2019-udgave)

  2. Kunne ikke indlæse fil eller assembly Oracle.DataAccess

  3. afsendelse af masse sms stopper i midten

  4. java.sql.SQLEundtagelse:Ingen passende driver fundet jdbc:oracle:thin