Heim >Datenbank >MySQL-Tutorial >Wie rufe ich den letzten Wert für eine Gruppe in MySQL mit „GROUP BY' ab?
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>
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>
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!