Heim >Datenbank >MySQL-Tutorial >Wie ordne ich in SQL eindeutigen Werten Zeilennummern zu?

Wie ordne ich in SQL eindeutigen Werten Zeilennummern zu?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-29 20:52:16470Durchsuche

How to Assign Row Numbers to Distinct Values in SQL?

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!

Stellungnahme:
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