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;
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;
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!