Этот запрос будет возвращать уникальные идентификаторы status_id, но только если комбинация этих status_id и каждого из этих других полей также уникальна.Вы можете выбрать уникальные идентификаторы status_id, но не можете вернуть все значения других полей, если для каждого status_id имеется более одной комбинации.
[edit]
Если вы хотите, чтобы только первая запись длякаждый статус:
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
Вместо row_number
, dense_rank
и rank
используются также для различных видов нумерации, но в этом случае вы действительно хотите одну строку, и row_number будетдостаточно.
Не уверен, order by
является обязательным.Если нет, вы можете оставить это.Если это так, вы можете указать фиктивное значение или указать конкретное поле, которое вы хотите использовать в качестве «первой строки».Например, введите spedify order by schedule_id
, чтобы вернуть наименьшее значение schedule_id для каждого идентификатора status_id.