このクエリは 一意の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
はさまざまな種類の番号付けにも使用されますが、この場合は実際には1つの行が必要であり、row_numberで十分です。
order by
がわからない 必須です。そうでない場合は、省略できます。そうである場合は、ダミー値を指定するか、「最初の行」として使用する特定のフィールドを指定できます。たとえば、order by schedule_id
を高速化します。 各status_idの最小のschedule_idを返します。