Kombination von DISTINCT und ORDER BY für eindeutige Ergebnisse
Wenn Sie mit einem Datensatz konfrontiert werden, der doppelte Werte enthält, kann die Verwendung von DISTINCT zum Entfernen von Duplikaten von entscheidender Bedeutung sein einzigartige Ergebnisse zu erzielen. Wenn jedoch auch eine Sortierung erforderlich ist, kann die Verwendung von ORDER BY in derselben SELECT-Anweisung eine Herausforderung darstellen.
Um dieses Problem zu beheben, betrachten Sie die folgende Abfrage:
SELECT Category FROM MonitoringJob ORDER BY CreationDate DESC
Diese Abfrage ruft Daten ab aus der MonitoringJob-Tabelle, wobei die Ergebnisse in absteigender Reihenfolge nach der Spalte „CreationDate“ sortiert werden. Das gewünschte Ergebnis ist eine Liste einzigartiger Kategorien, sortiert nach dem neuesten Erstellungsdatum. Allerdings erzeugt die Abfrage doppelte Werte.
Ein Versuch, dieses Problem zu lösen, könnte die Verwendung von DISTINCT sein:
SELECT DISTINCT Category FROM MonitoringJob ORDER BY CreationDate DESC
Leider schlägt diese Abfrage fehl, da DISTINCT nicht mit ORDER BY in einem einzigen funktioniert Anweisung.
Um dieses Problem zu lösen, können eine Aggregatfunktion und eine GROUP BY-Klausel verwendet werden verwendet:
SELECT DISTINCT Category, MAX(CreationDate) FROM MonitoringJob GROUP BY Category ORDER BY MAX(CreationDate) DESC, Category
Diese Abfrage:
Dieser Ansatz kombiniert die Leistungsfähigkeit von DISTINCT zur Eliminierung von Duplikaten mit der Funktionalität von ORDER BY zum Sortieren der Daten und liefert Ihnen einzigartige Ergebnisse, sortiert in der gewünschten Reihenfolge.
Das obige ist der detaillierte Inhalt vonWie erhalte ich mit DISTINCT und ORDER BY in SQL eindeutig sortierte Ergebnisse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!