Berikut ini adalah contoh paling sederhana yang mungkin, meskipun solusi apa pun harus dapat menskalakan namun banyak hasil teratas diperlukan:
Diberikan tabel seperti itu di bawah ini, dengan orang, grup, dan kolom umur, bagaimana Anda mendapatkan 2 orang tertua di setiap grup? (Ikatan dalam kelompok tidak boleh menghasilkan lebih banyak hasil, tetapi berikan 2 pertama dalam urutan abjad)
+ -------- + ------- + ----- + | Orang | Grup | Umur | + -------- + ------- + ----- + | Bob | 1 | 32 | | Jill | 1 | 34 | | Shawn | 1 | 42 | | Jake | 2 | 29 | | Paul | 2 | 36 | | Laura | 2 | 39 | + -------- + ------- + ----- +
Kumpulan hasil yang diinginkan:
+ -------- + ------- + ----- + | Shawn | 1 | 42 | | Jill | 1 | 34 | | Laura | 2 | 39 | | Paul | 2 | 36 | + -------- + ------- + ----- +
CATATAN: Pertanyaan ini dibangun di atas yang sebelumnya - Dapatkan catatan dengan nilai maksimal untuk setiap grup hasil SQL yang dikelompokkan - untuk mendapatkan satu baris teratas dari setiap grup, dan yang menerima jawaban khusus khusus MySQL dari @Bohemian:
select *
from (select * from mytable order by `Group`, Age desc, Person) x
group by `Group`
Senang bisa membangun dari ini, meskipun saya tidak melihat caranya.