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

Oracle SELECT TOP 10 catatan

Anda harus memasukkan kueri Anda saat ini ke dalam subkueri seperti di bawah ini :

SELECT * FROM (
  SELECT DISTINCT 
  APP_ID, 
  NAME, 
  STORAGE_GB, 
  HISTORY_CREATED, 
  TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') AS HISTORY_DATE  
  FROM HISTORY WHERE 
    STORAGE_GB IS NOT NULL AND 
      APP_ID NOT IN (SELECT APP_ID FROM HISTORY WHERE TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') ='06.02.2009')
  ORDER BY STORAGE_GB DESC )
WHERE ROWNUM <= 10

Oracle menerapkan rownum ke hasil setelah dikembalikan.
Anda perlu memfilter hasil setelah dikembalikan, jadi diperlukan subkueri. Anda juga dapat menggunakan fungsi RANK() untuk mendapatkan hasil Top-N.

Untuk performa coba gunakan NOT EXISTS sebagai pengganti NOT IN . Lihat ini untuk lebih lanjut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Inner bergabung pada pernyataan tertentu

  2. ORA-00604 ORA-12705

  3. ORA-24247:akses jaringan ditolak oleh daftar kontrol akses (ACL)

  4. CRS 11.2.0

  5. NULLIF() Fungsi di Oracle