Heim > Datenbank > MySQL-Tutorial > Wie rufe ich den letzten Wert für eine Gruppe in MySQL mit „GROUP BY' ab?

Wie rufe ich den letzten Wert für eine Gruppe in MySQL mit „GROUP BY' ab?

Mary-Kate Olsen
Freigeben: 2024-10-28 06:45:02
Original
438 Leute haben es durchsucht

How to Retrieve the Last Value for a Group in MySQL Using `GROUP BY`?

In MySQL kann die Auswahl des letzten Werts für eine bestimmte Gruppe von Zeilen mithilfe von GROUP BY erreicht werden, jedoch nicht direkt. Die dafür verwendete Technik besteht darin, die gewünschte Spalte zunächst mit einem eindeutigen Bezeichner, beispielsweise einem Zeitstempel, zu verketten, bevor die Gruppierung durchgeführt wird.

Betrachten Sie die folgende Abfrage:

<code class="sql">SELECT id_branch_channel, id_member, MAX(CONCAT(timestamp, attendance)) AS last_attendance
FROM view_event_attendance
WHERE id_event = 782
GROUP BY id_branch_channel, id_member;</code>
Nach dem Login kopieren

Hier Abfrage verketten wir die Zeitstempel- und Anwesenheitsspalten für jede Zeile in einer einzigen Zeichenfolge. Dadurch können wir die zuletzt aufgezeichnete Anwesenheit erfassen, die jedem eindeutigen Paar aus id_branch_channel und id_member zugeordnet ist. Die Funktion MAX() wird dann verwendet, um den Maximalwert der verketteten Zeichenfolge auszuwählen, wodurch wir effektiv die letzte aufgezeichnete Anwesenheit für jede Gruppe erhalten.

Sobald die letzte Anwesenheit identifiziert wurde, können wir die Funktion SUBSTRING() verwenden. Funktion, um nur den Anwesenheitswert aus der verketteten Zeichenfolge zu extrahieren. Dies kann mit der folgenden Abfrage erreicht werden:

<code class="sql">SELECT id_branch_channel, id_member, SUBSTRING(last_attendance, 19) AS attendance
FROM (
    SELECT id_branch_channel, id_member, MAX(CONCAT(timestamp, attendance)) AS last_attendance
    FROM view_event_attendance
    WHERE id_event = 782
    GROUP BY id_branch_channel, id_member
) AS subquery;</code>
Nach dem Login kopieren

Diese Abfrage verwendet eine Unterabfrage, um die anfängliche Gruppierung und Verkettung durchzuführen, und wählt dann mithilfe der Funktion SUBSTRING() nur die Anwesenheitsspalte aus dem Ergebnis aus.

Mithilfe dieser Technik können wir effektiv die zuletzt aufgezeichnete Anwesenheit für jede Zeilengruppe in der Tabelle „view_event_attendance“ auswählen.

Das obige ist der detaillierte Inhalt vonWie rufe ich den letzten Wert für eine Gruppe in MySQL mit „GROUP BY' ab?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage