Rekod teratas dalam pengekstrakan kecekapan tinggi data kumpulan
Anggapkan bahawa terdapat set data berstruktur, termasuk kakitangan, kumpulan, dan umur.
Hasil yang diharapkan:
Matlamatnya adalah untuk mengambil dua individu tertua dalam setiap kumpulan.
Penyelesaian yang sedia ada:
Kaedah sebelumnya (diilhamkan oleh pertanyaan yang dicadangkan oleh @Bohemian) untuk mengambil satu baris atas untuk setiap kumpulan:
penyelesaian yang dipertingkatkan menggunakan kesatuan:
<code class="language-sql">select * from (select * from mytable order by `Group`, Age desc, Person) x group by `Group`</code>
Gunakan alternatif nombor baris:
Kaedah lain adalah untuk menghasilkan nombor baris untuk setiap rekod, dan kemudian skrin mengikut nombor baris ini:
<code class="language-sql">( select * from mytable where `group` = 1 order by age desc LIMIT 2 ) UNION ALL ( select * from mytable where `group` = 2 order by age desc LIMIT 2 )</code>
Kesimpulan:
Berdasarkan keperluan khusus dan ciri data, kedua -dua teknologi kesatuan dan baris memberikan penyelesaian yang berkesan untuk mendapatkan rekod teratas dalam hasil kumpulan.
Atas ialah kandungan terperinci Bagaimana Mengeluarkan Rekod N Teratas dengan Cekap daripada Data Dikumpulkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!