Rumah > Artikel > pangkalan data > Bagaimana untuk Memilih Nilai Maksimum N Teratas daripada Jadual MySQL?
Apabila berurusan dengan pangkalan data SQL, selalunya anda perlu mendapatkan nilai n maksimum teratas daripada jadual. Ini amat berguna untuk mencari kategori yang paling kerap berlaku atau produk berprestasi tinggi.
Dalam MySQL, pendekatan asas untuk memilih nilai maksimum daripada jadual adalah dengan mengumpulkan lajur dan mengenal pasti nilai tertinggi dalam setiap kumpulan. Walau bagaimanapun, untuk memilih nilai n maksimum atas, pendekatan berbeza diperlukan.
Satu kaedah untuk memilih nilai n maks teratas daripada jadual ialah menggabungkan dua pertanyaan UNION. Pertanyaan pertama mengenal pasti nilai maksimum untuk setiap kumpulan, manakala pertanyaan kedua memilih nilai tertinggi seterusnya untuk setiap kumpulan, tidak termasuk nilai maksimum yang dikenal pasti pada mulanya.
SELECT max(column1) m FROM table t GROUP BY column2 UNION SELECT max(column1) m FROM table t WHERE column1 NOT IN (SELECT max(column1) WHERE column2 = t.column2)
Pendekatan ini boleh disesuaikan untuk mendapatkan sebarang bilangan nilai maks teratas dengan melaraskan klausa LIMIT dalam pertanyaan kedua. Contohnya, untuk memilih 2 nilai maks teratas, klausa LIMIT ialah "LIMIT 2,1".
Kaedah lain untuk memilih nilai n maks teratas daripada jadual MySQL melibatkan simulasi kedudukan berbanding partition. Teknik ini melibatkan subkueri kompleks yang memberikan pangkat kepada setiap nilai dalam kumpulan. Hasilnya kemudiannya boleh ditapis untuk mendapatkan semula nilai n teratas.
Berikut ialah contoh pertanyaan yang menggunakan pendekatan ini:
SELECT t.* FROM (SELECT grouper, (SELECT val FROM table li WHERE li.grouper = dlo.grouper ORDER BY li.grouper, li.val DESC LIMIT 2,1) AS mid FROM ( SELECT DISTINCT grouper FROM table ) dlo ) lo, table t WHERE t.grouper = lo.grouper AND t.val > lo.mid
Teknik ini lebih kompleks sedikit tetapi boleh digunakan untuk memilih nilai n maksimum atas bagi mana-mana lajur dalam jadual.
Apabila melaksanakan salah satu daripada pendekatan ini, adalah penting untuk mempertimbangkan pengedaran data dan bilangan nilai maksimum teratas yang diperlukan. Memilih sejumlah besar nilai maks teratas boleh memberi kesan ketara kepada prestasi dalam set data yang besar.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Nilai Maksimum N Teratas daripada Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!