Memaparkan Nombor Baris Nilai Unik menggunakan SQL
Kata kunci DISTINCT dalam SQL digunakan untuk mendapatkan semula nilai unik sahaja daripada lajur yang ditentukan. Dalam kes tertentu ini, anda menyasarkan untuk memaparkan nombor baris nilai unik dalam lajur menggunakan fungsi ROW_NUMBER().
Walau bagaimanapun, pertanyaan yang anda berikan:
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
tidak mengembalikan hasil yang diharapkan kerana ia menghapuskan pendua dengan berkesan menggunakan DISTINCT. Akibatnya, ia berkelakuan serupa dengan pertanyaan berikut:
SELECT DISTINCT id FROM table WHERE fid = 64
Untuk mencapai output yang anda inginkan, anda boleh menggunakan fungsi DENSE_RANK() sebaliknya. DENSE_RANK() memperuntukkan nombor baris unik kepada setiap nilai berbeza dalam tertib yang ditentukan, walaupun terdapat nilai pendua.
Berikut ialah pertanyaan yang diubah suai:
SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Ini pertanyaan akan memberikan anda nombor baris yang sepadan dengan nilai unik dalam lajur yang ditentukan untuk baris yang memenuhi syarat DIMANA fid = 64.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Nombor Baris untuk Nilai Unik dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!