Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih 10 Rekod Oracle Teratas Menggunakan Subkueri dan Penapisan?
Pilih 10 rekod teratas dalam Oracle menggunakan subkueri dan penapisan
Dalam pangkalan data Oracle, anda boleh menggunakan teknik subkueri dan penapisan untuk memilih 10 rekod teratas yang diisih mengikut lajur tertentu. Pertanyaan yang asalnya digunakan untuk memilih semua rekod yang sepadan boleh diubah suai untuk memasukkan keperluan ini.
Untuk menyelesaikan masalah mengembalikan rekod "rawak", anda boleh menggunakan klausa ROWNUM (iaitu bersamaan Oracle bagi klausa LIMIT).
Pertanyaan yang diubah suai:
<code class="language-sql">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;</code>
Pertanyaan ini mula-mula menggunakan subkueri untuk mendapatkan semula rekod yang sepadan. Ia kemudian menggunakan klausa ROWNUM untuk memilih 10 rekod teratas daripada set data yang terhasil berdasarkan kriteria pengisihan.
Nota Prestasi:
Jika prestasi pertanyaan lambat semasa memproses set data yang besar, pertimbangkan untuk menggunakan NOT EXISTS dan bukannya NOT IN untuk predikat subquery. NOT EXISTS mungkin lebih cekap apabila subquery mengandungi sejumlah besar rekod.
Atas ialah kandungan terperinci Bagaimana untuk Memilih 10 Rekod Oracle Teratas Menggunakan Subkueri dan Penapisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!