Mengambil Baris dengan Tarikh Rekod Terawal untuk Setiap ID Unik
Bekerja dengan jadual yang mengandungi nilai id
pendua dan perlu memilih hanya baris dengan record_date
yang paling awal untuk setiap id
unik boleh menjadi rumit. Kaedah standard sering bergelut apabila nilai record_date
tidak unik. Penyelesaian ini mengendalikan senario sedemikian dengan cekap:
Pertanyaan SQL berikut dengan berkesan memilih baris yang dikehendaki:
<code class="language-sql">SELECT mt.* FROM MyTable mt INNER JOIN ( SELECT id, MIN(record_date) AS MinDate FROM MyTable GROUP BY id ) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>
Pertanyaan ini menggunakan subkueri untuk terlebih dahulu menentukan minimum record_date
bagi setiap id
. Subkueri mengumpulkan baris mengikut id
dan kemudian menggunakan fungsi MIN()
untuk mencari record_date
minimum dalam setiap kumpulan.
Pertanyaan luar kemudiannya menggabungkan hasil subkueri kembali ke jadual asal (MyTable
) menggunakan kedua-dua id
dan record_date
. Ini memastikan bahawa hanya baris yang sepadan dengan minimum record_date
untuk setiap id
disertakan dalam set keputusan akhir. Ini berkesan mengalih keluar pendua dan hanya mengembalikan baris dengan record_date
yang paling awal untuk setiap id
unik.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris dengan Rekod_Tarikh Minimum untuk Setiap ID Unik dalam Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!