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

Tidak termasuk hanya satu nilai MIN pada Oracle SQL

Untuk melakukan ini, Anda harus memisahkannya entah bagaimana; masalah Anda saat ini adalah bahwa 2 skor terendah adalah sama sehingga setiap operasi persamaan (dalam) yang dilakukan pada salah satu nilai memperlakukan yang lain secara identik.

Anda dapat menggunakan sesuatu seperti kueri analitik ROW_NUMBER() untuk mengidentifikasi baris secara unik:

select id, sum(score) / count(score) as score
  from ( select id, score, row_number() over (order by score) as score_rank
           from gamescore
          where gameno = 1
                )
 where score_rank <> 1
 group by id

ROW_NUMBER() :

Karena klausa ORDER BY ada di SCORE dalam urutan menaik, salah satu skor terendah akan dihapus. Ini akan menjadi nilai acak kecuali Anda menambahkan kondisi tie-breaker lainnya ke ORDER BY.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Metode alternatif ke tabel temp global untuk Oracle Stored Procedure

  2. ORA-00903:nama tabel tidak valid di PreparedStatement

  3. Oracle SQL, gabungkan beberapa kolom + tambahkan teks

  4. Penggunaan Subquery Berkorelasi

  5. Pengecoran Tipe Oracle