Heim > Datenbank > MySQL-Tutorial > Wie kombiniere ich DISTINCT und ORDER BY für eindeutige, geordnete Ergebnisse in SQL?

Wie kombiniere ich DISTINCT und ORDER BY für eindeutige, geordnete Ergebnisse in SQL?

DDD
Freigeben: 2025-01-07 09:06:42
Original
286 Leute haben es durchsucht

How to Combine DISTINCT and ORDER BY for Unique, Ordered Results in SQL?

So verwenden Sie DISTINCT und ORDER BY in derselben SELECT-Anweisung

Ausgeführte Abfragen geben häufig doppelte Daten zurück und die Reihenfolge dieser Daten erfolgt mithilfe von ORDER BY allein reicht möglicherweise nicht aus, um diese Duplikate zu entfernen. Durch die Kombination von DISTINCT und ORDER BY in einer einzigen SELECT-Anweisung können Entwickler jedoch Duplikate effizient entfernen und gleichzeitig die gewünschte Reihenfolge beibehalten.

Um dieses Problem zu beheben, muss die ORDER BY-Klausel die in der SELECT-Klausel verwendeten Spalten enthalten. Wenn DISTINCT verwendet wird, werden die Ergebnisse basierend auf den angegebenen Spalten gruppiert, wodurch Duplikate effektiv entfernt werden. Wenn sich die ORDER BY-Klausel jedoch auf Spalten bezieht, die nicht in DISTINCT enthalten sind, werden durch die Sortierung alle Zeilen mit demselben Wert in den SELECT-Spalten falsch gruppiert, was zu doppelten Ergebnissen führt.

Lösung:
Auflösen In diesem Fall sollte die Abfrage eine Aggregatfunktion wie MAX() verwenden, um nach der gewünschten Spalte (in diesem Fall Erstellungsdatum) zu sortieren. Zusätzlich wird eine GROUP BY-Klausel hinzugefügt, um die Ergebnisse nach den DISTINCT-Spalten (Kategorie) zu gruppieren. Diese Kombination stellt sicher, dass Duplikate entfernt werden und gleichzeitig die Reihenfolge der Ergebnisse erhalten bleibt. Die geänderte Abfrage würde wie folgt aussehen:

SELECT DISTINCT Category, MAX(CreationDate)
FROM MonitoringJob
GROUP BY Category
ORDER BY MAX(CreationDate) DESC, Category
Nach dem Login kopieren

Diese überarbeitete Abfrage gibt die gewünschten Ergebnisse aus, entfernt Duplikate aus der Kategorie und sortiert sie in absteigender Reihenfolge nach Erstellungsdatum, gefolgt von der Kategorie.

Das obige ist der detaillierte Inhalt vonWie kombiniere ich DISTINCT und ORDER BY für eindeutige, geordnete Ergebnisse in SQL?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage