Gunakan fungsi tetingkap untuk mendapatkan garis depan n bagi setiap kumpulan
Artikel ini memperkenalkan cara menggunakan fungsi tetingkap SQL untuk mengekstrak garis N secara efisien dari data kumpulan. Ini sangat praktikal dalam banyak senario analisis data.
MySQL 8 dan versi yang lebih tinggi menyediakan tiga fungsi tetingkap biasa:
, dan ROW_NUMBER
. Fungsi ini memperuntukkan nilai untuk setiap baris, supaya kita memilih beberapa baris pertama dalam setiap kumpulan. RANK
DENSE_RANK
Contoh Data:
Dengan mengandaikan kami mempunyai set data berikut:
Hasil output dari tiga fungsi tingkap perbandingan:
Keterangan fungsi:
: Nombor pesanan unik diberikan untuk setiap baris dalam setiap kumpulan, bermula dari 1. Sebagai contoh, nilai ROW_NUMBER
dalam catid
adalah 1 hingga 5. p01
row_number
: Semua kedudukan diperuntukkan untuk setiap baris setiap kumpulan, dan nilai yang sama adalah sama. Sebagai contoh, nilai RANK
adalah 1 hingga 5 (walaupun beberapa nilai diulang).
catid
p01
rank
adalah 1 hingga 5 (walaupun beberapa nilai diulang). DENSE_RANK
RANK
catid
Pilih Fungsi Tetingkap Kanan: p01
dense_rank
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengambil baris N atas untuk setiap kumpulan dalam SQL menggunakan fungsi tetingkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!