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

Pilih nilai paling minimum kedua di Oracle

Gunakan fungsi analitik

SELECT value
  FROM (SELECT value,
               dense_rank() over (order by value asc) rnk
          FROM table)
 WHERE rnk = 2

Fungsi analitik RANK , DENSE_RANK , dan ROW_NUMBER identik kecuali untuk cara mereka menangani ikatan. RANK menggunakan proses pemutusan ikatan gaya olahraga sehingga jika dua baris seri untuk peringkat 1, baris berikutnya memiliki peringkat 3. DENSE_RANK memberikan kedua baris yang terikat untuk tempat pertama peringkat 1 dan kemudian memberikan baris berikutnya peringkat 2. ROW_NUMBER sewenang-wenang memutuskan ikatan dan memberikan salah satu dari dua baris dengan nilai terendah peringkat 1 dan yang lainnya peringkat 2.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dbms_output ukuran buffer overflow

  2. Oracle:apakah urutan kolom penting dalam indeks?

  3. Nilai tidak ditampilkan dengan nol di depan di Oracle

  4. Oracle/SQL:Mengapa kueri SELECT * FROM record WHERE rownum>=5 AND rownum <=10 - mengembalikan nol baris

  5. Bagaimana cara menerapkan pengambilan batch dengan Fluent NHibernate saat bekerja dengan Oracle?