Heim >Datenbank >MySQL-Tutorial >Wie sortiere ich nach Datum und Uhrzeit, bevor ich in MySQL nach Namen gruppiere?

Wie sortiere ich nach Datum und Uhrzeit, bevor ich in MySQL nach Namen gruppiere?

DDD
DDDOriginal
2024-10-30 09:23:27222Durchsuche

How to Sort by Date and Time before Grouping by Name in MySQL?

Sortieren und Gruppieren in MySQL verwalten: Kombinieren von ORDER BY und GROUP BY für spezifische Ergebnisse

In MySQL wird die gewünschte Sortierung und Gruppierung erreicht Daten können eine Herausforderung sein, wenn die Reihenfolge der Vorgänge widersprüchlich ist. Diese Frage stellt ein Szenario dar, in dem das Ziel darin besteht, Daten nach Datum und Uhrzeit zu sortieren, bevor sie nach Namen gruppiert werden.

Wie der Benutzer erklärt, besteht der Standardansatz darin, ORDER BY Datum ASC, Zeit ASC gefolgt von GROUP BY Name zu verwenden schlägt fehl, weil GROUP BY in der Abfrage vor ORDER BY stehen muss. Um diesen Konflikt zu lösen, bietet die Antwort zwei alternative Methoden:

Methode 1: Unterabfrage

Die erste Methode beinhaltet die Verwendung einer Unterabfrage, um die gewünschte Reihenfolge vor der Gruppierung zu erreichen:

<code class="sql">SELECT * 
FROM (
    SELECT * FROM table_name
    ORDER BY date ASC, time ASC 
) AS sub
GROUP BY name</code>

Diese Unterabfrage erstellt eine temporäre Tabelle, sub, die die nach Datum und Uhrzeit sortierten Daten enthält. Die Hauptabfrage gruppiert diese temporäre Tabelle dann nach Namen und erzielt so das gewünschte Ergebnis.

Methode 2: Verwenden eines Common Table Expression (CTE)

Eine andere Methode, die normalerweise verwendet wird mit MySQL-Versionen 8.0 und höher besteht darin, einen Common Table Expression (CTE) zu erstellen, um die Sortierung und Gruppierung durchzuführen:

<code class="sql">WITH sorted_data AS (
    SELECT * FROM table_name
    ORDER BY date ASC, time ASC 
)
SELECT * 
FROM sorted_data
GROUP BY name</code>

Der CTE, sorted_data, erzielt das gleiche Ergebnis wie die Unterabfrage, indem er eine temporäre Tabelle erstellt mit den sortierten Daten, die dann in der Hauptabfrage zur Gruppierung verwendet werden.

Das obige ist der detaillierte Inhalt vonWie sortiere ich nach Datum und Uhrzeit, bevor ich in MySQL nach Namen gruppiere?. 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