Heim >Datenbank >MySQL-Tutorial >Wie kann ich doppelte Zeilen entfernen und gleichzeitig die Reihenfolge in einer SQL-SELECT-Anweisung beibehalten?
Verwendung von DISTINCT und ORDER BY in derselben SELECT-Anweisung
Nach dem Ausführen einer SELECT-Anweisung wird die Kategoriespalte aus der MonitoringJob-Tabelle abgerufen und sortiert Wenn die Ergebnisse nach der Spalte „CreationDate“ in absteigender Reihenfolge angezeigt werden, gibt die Datenbank möglicherweise doppelte Werte zurück. Um Duplikate zu entfernen und gleichzeitig die angegebene Reihenfolge beizubehalten, kann das Schlüsselwort DISTINCT verwendet werden. Die alleinige Verwendung von DISTINCT reicht jedoch möglicherweise nicht aus.
Im bereitgestellten Beispiel wird das Problem durch die alleinige Verwendung des DISTINCT-Schlüsselworts nicht gelöst, da die ORDER BY-Klausel auf der CreationDate-Spalte basiert, die doppelte Werte enthält. Um dieses Problem zu beheben, kann eine Aggregatfunktion wie MAX() mit dem Schlüsselwort DISTINCT kombiniert werden, um die Ergebnisse basierend auf einer bestimmten Spalte zu sortieren und gleichzeitig Duplikate auszuschließen. Darüber hinaus ist eine GROUP BY-Klausel erforderlich, um eindeutige Kategorien basierend auf der in der DISTINCT-Operation verwendeten Spalte zu erstellen.
Eine geeignete Lösung wäre:
SELECT DISTINCT Category, MAX(CreationDate) FROM MonitoringJob GROUP BY Category ORDER BY MAX(CreationDate) DESC, Category
Diese geänderte Anweisung stellt sicher, dass Duplikate entstehen werden unter Beibehaltung der gewünschten Reihenfolge entfernt, indem nach der Spalte MAX(CreationDate) und dann nach Kategorie sortiert wird. Als Ergebnis wird die gewünschte Ausgabe erhalten, die die verschiedenen Kategorien in absteigender Reihenfolge basierend auf ihren neuesten CreationDate-Werten auflistet.
Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Zeilen entfernen und gleichzeitig die Reihenfolge in einer SQL-SELECT-Anweisung beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!