sql >> Databáze >  >> RDS >> Oracle

Jak vybrat jedinečné hodnoty z tabulky?

Tento dotaz bude vrátí jedinečné status_id, ale pouze v případě, že kombinace těchto status_id a každého z těchto dalších polí je také jedinečná. Můžete vybrat jedinečné status_id, ale nemůžete vrátit všechny hodnoty ostatních polí, pokud pro každé status_id existuje více než jedna kombinace.

[upravit]

Pokud chcete pro každý stav pouze první záznam:

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

Místo row_number , dense_rank a rank se také používají pro různé druhy číslování, ale v tomto případě opravdu chcete jeden řádek a row_number bude stačit.

Nejste si jisti order by je povinná. Pokud ne, můžete to vynechat. Pokud ano, můžete zadat fiktivní hodnotu nebo zadat konkrétní pole, které chcete použít jako „první řádek“. Například upřesněte order by schedule_id pro každý status_id vrátí nejnižší hodnotu schedule_id.



  1. PHP se nepřipojuje ke vzdálené MySQL

  2. Rozdíly mezi MySQL a Oracle DB

  3. Vkládání dat pomocí spojovacích tabulek

  4. Jak vynutit datový typ char(N) místo varchar(N) v poli modelu django