Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mendapatkan Nilai Terakhir untuk Kumpulan dalam MySQL Menggunakan `GROUP BY`?

Bagaimana untuk Mendapatkan Nilai Terakhir untuk Kumpulan dalam MySQL Menggunakan `GROUP BY`?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-28 06:45:02350semak imbas

How to Retrieve the Last Value for a Group in MySQL Using `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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn