Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Nilai Terakhir untuk Kumpulan dalam MySQL Menggunakan `GROUP BY`?
Dalam MySQL, memilih nilai terakhir untuk kumpulan baris tertentu menggunakan GROUP BY boleh dicapai, tetapi tidak secara langsung. Teknik yang digunakan untuk mencapai ini adalah dengan menggabungkan lajur yang dikehendaki terlebih dahulu dengan pengecam unik, seperti cap masa, sebelum melaksanakan pengumpulan.
Pertimbangkan pertanyaan berikut:
<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>
Dalam ini pertanyaan, kami menggabungkan cap masa dan lajur kehadiran untuk setiap baris ke dalam satu rentetan. Ini membolehkan kami menangkap rekod kehadiran terakhir yang dikaitkan dengan setiap pasangan unik id_branch_channel dan id_member. Fungsi MAX() kemudiannya digunakan untuk memilih nilai maksimum rentetan bercantum, dengan berkesan memberikan kami kehadiran yang direkodkan terakhir untuk setiap kumpulan.
Setelah kehadiran terakhir dikenal pasti, kami boleh menggunakan SUBSTRING() berfungsi untuk mengekstrak hanya nilai kehadiran daripada rentetan bercantum. Ini boleh dicapai dengan pertanyaan berikut:
<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>
Pertanyaan ini menggunakan subkueri untuk melaksanakan pengumpulan dan penggabungan awal, dan kemudian memilih hanya lajur kehadiran daripada hasil menggunakan fungsi SUBSTRING().
Dengan menggunakan teknik ini, kami boleh memilih kehadiran terakhir yang direkodkan dengan berkesan untuk setiap kumpulan baris dalam jadual view_event_attendance.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Terakhir untuk Kumpulan dalam MySQL Menggunakan `GROUP BY`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!