Heim > Datenbank > MySQL-Tutorial > Wie erhalte ich Zeilennummern für eindeutige Werte in SQL mit DENSE_RANK()?

Wie erhalte ich Zeilennummern für eindeutige Werte in SQL mit DENSE_RANK()?

Patricia Arquette
Freigeben: 2024-12-29 03:08:09
Original
162 Leute haben es durchsucht

How to Get Row Numbers for Distinct Values in SQL Using DENSE_RANK()?

Unterscheiden von Zeilen mit eindeutigen Werten mithilfe von Row_Number in SQL

Das Schlüsselwort DISTINCT in SQL spielt eine entscheidende Rolle bei der Eliminierung doppelter Zeilen beim Abrufen von Daten. Dies reicht jedoch möglicherweise nicht aus, wenn Sie das eindeutige Vorkommen jedes Werts innerhalb einer Spalte identifizieren müssen. Hier kommt Row_Number ins Spiel, aber die Kombination mit DISTINCT kann schwierig sein.

Die betreffende Abfrage versucht, Zeilennummern für unterschiedliche Werte in der ID-Spalte anzuzeigen:

SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum
FROM table
WHERE fid = 64;
Nach dem Login kopieren

Allerdings , führt diese Abfrage zu den eindeutigen Werten von id, nicht zu den Zeilennummern für jeden eindeutigen Wert. Um das gewünschte Ergebnis zu erzielen, können Sie die Funktion DENSE_RANK() anstelle von DISTINCT verwenden:

SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum
FROM table
WHERE fid = 64;
Nach dem Login kopieren

DENSE_RANK() weist aufeinanderfolgende Zeilennummern eindeutigen Werten zu, im Gegensatz zu ROW_NUMBER(), das doppelten Werten Lücken zuweist. Durch die Kombination von DENSE_RANK() mit DISTINCT können Sie die Zeilennummern für jeden eindeutigen ID-Wert abrufen und so die notwendigen Informationen für die weitere Analyse oder Verarbeitung bereitstellen.

Das obige ist der detaillierte Inhalt vonWie erhalte ich Zeilennummern für eindeutige Werte in SQL mit DENSE_RANK()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage