Diese Abfrage wird gibt eindeutige status_ids zurück, aber nur, wenn die Kombination dieser status_id und jedes dieser anderen Felder ebenfalls eindeutig ist. Sie können die eindeutigen status_ids auswählen, aber Sie können nicht alle Werte der anderen Felder zurückgeben, wenn es mehr als eine Kombination für jede status_id gibt.
[Bearbeiten]
Wenn Sie nur den ersten Datensatz für jeden Status wünschen:
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
Statt row_number
, dense_rank
und rank
werden auch für verschiedene Arten der Nummerierung verwendet, aber in diesem Fall möchten Sie wirklich eine einzelne Zeile, und row_number wird ausreichen.
Nicht sicher order by
ist obligatorisch. Wenn nicht, kannst du es weglassen. Wenn dies der Fall ist, können Sie einen Dummy-Wert angeben oder ein bestimmtes Feld angeben, das Sie als „erste Zeile“ verwenden möchten. Geben Sie beispielsweise order by schedule_id
an um die niedrigste schedule_id für jede status_id zurückzugeben.