Rumah > pangkalan data > tutorial mysql > Bagaimanakah DISTINCT Berinteraksi dengan ROW_NUMBER() dan Bagaimana Saya Boleh Mendapatkan Nombor Baris Unik dalam SQL?

Bagaimanakah DISTINCT Berinteraksi dengan ROW_NUMBER() dan Bagaimana Saya Boleh Mendapatkan Nombor Baris Unik dalam SQL?

Patricia Arquette
Lepaskan: 2024-12-26 03:13:09
asal
429 orang telah melayarinya

How Does DISTINCT Interact with ROW_NUMBER() and How Can I Get Unique Row Numbers in SQL?

Memahami Kata Kunci DISTINCT dan Fungsi ROW_NUMBER()

Apabila bekerja dengan data dalam SQL, selalunya menjadi perlu untuk mendapatkan hanya baris unik daripada sebuah meja. Kata kunci DISTINCT biasanya digunakan untuk tujuan ini, kerana ia menghapuskan baris pendua daripada set hasil. Walau bagaimanapun, apabila digabungkan dengan fungsi ROW_NUMBER(), kata kunci DISTINCT mungkin berkelakuan berbeza.

ROW_NUMBER() Fungsi dan Nilai Distinct

Fungsi ROW_NUMBER() menetapkan nombor jujukan unik untuk setiap baris dalam jadual. Secara lalai, baris disusun mengikut kedudukannya dalam jadual. Walau bagaimanapun, anda boleh menentukan susunan pengisihan yang berbeza menggunakan klausa ORDER BY.

Dalam pertanyaan yang disediakan, fungsi ROW_NUMBER() digunakan bersama kata kunci DISTINCT:

SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum
FROM table
WHERE fid = 64
Salin selepas log masuk

Pertanyaan ini bertujuan untuk memaparkan semua nombor baris nilai unik dalam lajur id. Walau bagaimanapun, ia hanya mengembalikan nilai yang berbeza tanpa menunjukkan nombor baris.

Penyelesaian Menggunakan Fungsi DENSE_RANK()

Untuk mencapai hasil yang diingini, anda boleh menggunakan DENSE_RANK() ) dan bukannya ROW_NUMBER(). Fungsi DENSE_RANK() memberikan nombor jujukan unik kepada setiap nilai berbeza dalam jadual, tanpa mengira susunan baris.

Pertanyaan yang dibetulkan menggunakan DENSE_RANK():

SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum
FROM table
WHERE fid = 64
Salin selepas log masuk

Pertanyaan ini akan mengembalikan nilai yang berbeza dalam lajur id bersama-sama nombor baris yang sepadan, memenuhi keperluan asal.

Atas ialah kandungan terperinci Bagaimanakah DISTINCT Berinteraksi dengan ROW_NUMBER() dan Bagaimana Saya Boleh Mendapatkan Nombor Baris Unik dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan