Kueri ini akan mengembalikan status_id unik, tetapi hanya jika kombinasi dari status_id tersebut dan masing-masing bidang lainnya juga unik. Anda dapat memilih status_id unik, tetapi Anda tidak dapat mengembalikan semua nilai bidang lain jika ada lebih dari satu kombinasi untuk setiap status_id.
[sunting]
Jika Anda hanya menginginkan catatan pertama untuk setiap status:
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
Alih-alih row_number
, dense_rank
dan rank
digunakan juga untuk berbagai jenis penomoran, tetapi dalam kasus ini Anda benar-benar menginginkan satu baris, dan row_number sudah cukup.
Tidak yakin order by
adalah wajib. Jika tidak, Anda bisa meninggalkannya. Jika ya, Anda dapat menentukan nilai dummy atau menentukan bidang tertentu yang ingin Anda gunakan sebagai 'baris pertama'. Misalnya, tentukan order by schedule_id
untuk mengembalikan schedule_id terendah untuk setiap status_id.