Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Nombor Baris untuk Nilai Berbeza dalam SQL Menggunakan DENSE_RANK()?
Membezakan Baris dengan Nilai Berbeza Menggunakan Row_Number dalam SQL
Kata kunci DISTINCT dalam SQL memainkan peranan penting dalam menghapuskan baris pendua apabila mendapatkan data. Walau bagaimanapun, ia mungkin tidak mencukupi apabila anda perlu mengenal pasti kejadian unik setiap nilai dalam lajur. Di sinilah Row_Number berperanan, tetapi gabungannya dengan DISTINCT boleh menjadi rumit.
Pertanyaan yang dimaksudkan cuba memaparkan nombor baris untuk nilai yang berbeza dalam lajur id:
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64;
Walau bagaimanapun , pertanyaan ini menghasilkan nilai id yang berbeza, bukan nombor baris untuk setiap nilai unik. Untuk mencapai hasil yang diingini, anda boleh menggunakan fungsi DENSE_RANK() dan bukannya DISTINCT:
SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64;
DENSE_RANK() memberikan nombor baris berjujukan kepada nilai yang berbeza, tidak seperti ROW_NUMBER() yang memberikan jurang kepada nilai pendua. Dengan menggabungkan DENSE_RANK() dengan DISTINCT, anda boleh mendapatkan semula nombor baris untuk setiap nilai id unik, memberikan maklumat yang diperlukan untuk analisis atau pemprosesan selanjutnya.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nombor Baris untuk Nilai Berbeza dalam SQL Menggunakan DENSE_RANK()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!