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

Mary-Kate Olsen
Lepaskan: 2024-10-28 06:45:02
asal
349 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!