Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara memilih nilai unik dari tabel?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghubungkan Oracle 21c ke SQL Server

  2. Variabel tabel diisi hanya dengan satu nilai

  3. Pertanyaan ReadyStatement di Jawa melawan Oracle

  4. Oracle OCI, variabel ikat, dan kueri seperti ID IN (1, 2, 3)

  5. Indeks tidak digunakan karena konversi jenis?