To zapytanie będzie zwracają unikalne status_id's, ale tylko wtedy, gdy kombinacja tych status_id i każdego z pozostałych pól jest również unikalna. Możesz wybrać unikalne identyfikatory status_id, ale nie możesz zwrócić wszystkich wartości innych pól, jeśli istnieje więcej niż jedna kombinacja dla każdego identyfikatora status_id.
[edytuj]
Jeśli chcesz tylko pierwszy rekord dla każdego statusu:
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
Zamiast row_number
, dense_rank
i rank
są również używane do różnych rodzajów numeracji, ale w tym przypadku naprawdę potrzebujesz jednego wiersza, a liczba_wierszy wystarczy.
Nie jestem pewien order by
jest obowiązkowe. Jeśli nie, możesz to pominąć. Jeśli tak, możesz podać fikcyjną wartość lub określić konkretne pole, które chcesz użyć jako „pierwszy wiersz”. Na przykład spedyfikuj order by schedule_id
aby zwrócić najniższy identyfikator harmonogramu dla każdego identyfikatora statusu.