SQL-Abfrage zum Abrufen eindeutiger Zeilennummern mit DENSE_RANK()
In SQL erfolgt die Suche nach eindeutigen (eindeutigen) Werten normalerweise mithilfe von DISTINCT Stichwort. Wenn Sie jedoch Zeilennummern für diese unterschiedlichen Werte anzeigen müssen, reicht die Verwendung von DISTINCT allein möglicherweise nicht aus.
Im angegebenen Code:
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Das Schlüsselwort DISTINCT entfernt doppelte ID-Werte, aber Die Funktion ROW_NUMBER() weist jedem Datensatz im Ergebnissatz eine eindeutige Zeilennummer zu. Es ist also nicht nützlich, um eindeutige Werte zu identifizieren.
Um das gewünschte Ergebnis zu erzielen, können wir stattdessen die Funktion DENSE_RANK() verwenden:
SELECT DISTINCT id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Die Funktion DENSE_RANK() weist einen eindeutigen Rang zu zu jedem eindeutigen ID-Wert, wobei etwaige Lücken in den Zeilennummern außer Acht gelassen werden. Dadurch werden die eindeutigen Zeilennummern für die unterschiedlichen Werte im Ergebnissatz bereitgestellt.
Das obige ist der detaillierte Inhalt vonWie erhalte ich mit DENSE_RANK() eindeutige Zeilennummern in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!