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.