Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menetapkan Nombor Baris kepada Nilai Berbeza dalam SQL?

Bagaimana untuk menetapkan Nombor Baris kepada Nilai Berbeza dalam SQL?

Patricia Arquette
Lepaskan: 2024-12-29 20:52:16
asal
462 orang telah melayarinya

How to Assign Row Numbers to Distinct Values in SQL?

Nombor Baris Berbeza dalam SQL menggunakan Row_Number

Pertanyaan berbeza dalam SQL digunakan untuk mendapatkan nilai unik daripada lajur yang ditentukan. Walau bagaimanapun, terdapat senario di mana adalah wajar untuk bukan sahaja memaparkan nilai yang berbeza tetapi juga nombor baris yang sepadan. Untuk mencapai matlamat ini, fungsi Row_Number boleh digunakan bersama dengan kata kunci DISTINCT.

Dalam contoh yang diberikan, pengguna cuba menggabungkan DISTINCT dengan Row_Number untuk memaparkan nilai yang berbeza bersama dengan nombor baris:

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

Walau bagaimanapun, pertanyaan ini hanya menghasilkan nilai yang berbeza, serupa dengan yang berikut pertanyaan:

SELECT distinct id FROM table WHERE fid = 64
Salin selepas log masuk

Untuk menyelesaikan isu ini, fungsi DENSE_RANK boleh digunakan dan bukannya Row_Number. DENSE_RANK memperuntukkan nombor baris berturut-turut kepada nilai yang berbeza, tanpa mengira sebarang jurang dalam data.

Berikut ialah pertanyaan yang diperbetulkan:

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

Pertanyaan ini akan memberikan hasil yang diingini: senarai nilai yang berbeza dengan nombor baris yang sepadan, seperti yang dimaksudkan.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan Nombor Baris kepada Nilai Berbeza 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