Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Cari Rekod Terkini dalam Setiap Kumpulan Menggunakan SQL GROUP BY?

Bagaimana untuk Cari Rekod Terkini dalam Setiap Kumpulan Menggunakan SQL GROUP BY?

DDD
DDDasal
2024-12-28 02:44:09863semak imbas

How to Find the Most Recent Record in Each Group Using SQL's GROUP BY?

Mencari Rekod Terkini dalam Setiap Kumpulan dengan KUMPULAN OLEH

Untuk mengenal pasti rekod terkini dalam setiap kumpulan yang dikategorikan mengikut lajur tertentu, seperti ID pengirim, terdapat dua pilihan untuk dipertimbangkan:

Pilihan 1: Menentukan Cap Masa Terakhir Nilai

Teknik ini melibatkan pencarian nilai cap masa terkini untuk setiap kumpulan. Contoh pertanyaan untuk pendekatan ini ialah:

SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id

Pilihan 2: Menyertai pada Nilai Dikira

Kaedah lain ialah menggabungkan jadual asal dengan hasil subquery yang menentukan cap masa maksimum untuk setiap kumpulan. Pertanyaan berikut menunjukkan pendekatan ini:

SELECT t1.* FROM messages t1
JOIN (SELECT from_id, MAX(timestamp) timestamp FROM messages GROUP BY from_id) t2
ON t1.from_id = t2.from_id AND t1.timestamp = t2.timestamp;

Dengan menggunakan salah satu daripada kaedah ini, anda boleh mendapatkan semula mesej terbaharu untuk setiap ID pengirim yang berbeza, memberikan pandangan yang lebih komprehensif tentang perbualan terbaharu.

Atas ialah kandungan terperinci Bagaimana untuk Cari Rekod Terkini dalam Setiap Kumpulan Menggunakan SQL 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