Heim >Datenbank >MySQL-Tutorial >Wie ordne ich in SQL eindeutigen Werten Zeilennummern zu?
Eindeutige Zeilennummern in SQL mit Row_Number
Eindeutige Abfragen in SQL werden verwendet, um eindeutige Werte aus einer bestimmten Spalte abzurufen. Es gibt jedoch Szenarien, in denen es wünschenswert ist, nicht nur unterschiedliche Werte, sondern auch die entsprechenden Zeilennummern anzuzeigen. Um dies zu erreichen, kann die Funktion Row_Number in Verbindung mit dem Schlüsselwort DISTINCT verwendet werden.
Im bereitgestellten Beispiel hat der Benutzer versucht, DISTINCT mit Row_Number zu kombinieren, um unterschiedliche Werte zusammen mit Zeilennummern anzuzeigen:
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Diese Abfrage ergab jedoch nur unterschiedliche Werte, ähnlich der folgenden Abfrage:
SELECT distinct id FROM table WHERE fid = 64
Um dieses Problem zu beheben, muss die Die Funktion DENSE_RANK kann anstelle von Row_Number verwendet werden. DENSE_RANK weist aufeinanderfolgende Zeilennummern eindeutigen Werten zu, unabhängig von Lücken in den Daten.
Hier ist die korrigierte Abfrage:
SELECT distinct id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
Diese Abfrage liefert das gewünschte Ergebnis: eine Liste eindeutiger Werte mit entsprechenden Zeilennummern, wie vorgesehen.
Das obige ist der detaillierte Inhalt vonWie ordne ich in SQL eindeutigen Werten Zeilennummern zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!