Тази заявка ще връща уникални status_id, но само ако комбинацията от тези status_id и всяко от тези други полета също е уникална. Можете да изберете уникалните status_id, но не можете да върнете всички стойности на другите полета, ако има повече от една комбинация за всеки status_id.
[редактиране]
Ако искате само първия запис за всеки статус:
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
е задължително. Ако не, можете да го оставите. Ако е така, можете да посочите фиктивна стойност или да посочите конкретно поле, което искате да използвате като „първи ред“. Например, укажете order by schedule_id
за да върне най-ниския schedule_id за всеки status_id.