Mendapatkan Dua Baris Teratas untuk Setiap Kumpulan dalam SQL
Pertanyaan SQL membolehkan pengguna mengekstrak data tertentu daripada jadual, tetapi bagaimana jika anda memerlukan untuk memilih dua baris teratas bagi setiap kumpulan? Senario ini boleh dihadapi apabila anda ingin menganalisis rekod pemarkahan tertinggi atau mendapatkan berbilang nilai dalam kumpulan.
Mari kita pertimbangkan jadual berikut sebagai contoh:
NAME | SCORE |
---|---|
willy | 1 |
willy | 2 |
willy | 3 |
zoe | 4 |
zoe | 5 |
zoe | 6 |
Untuk mendapatkan semula dua markah tertinggi untuk setiap nama, kami boleh menggunakan pertanyaan SQL berikut:
SELECT * FROM test s WHERE ( SELECT COUNT(*) FROM test f WHERE f.name = s.name AND f.score >= s.score ) <= 2
Begini caranya pertanyaan berfungsi:
Output yang dijangkakan untuk pertanyaan ini adalah seperti berikut:
NAME | SCORE |
---|---|
willy | 2 |
willy | 3 |
zoe | 5 |
zoe | 6 |
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Dua Baris Teratas untuk Setiap Kumpulan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!