Memilih Baris Unik dengan Tarikh Rekod Terawal
Andaikan anda mempunyai jadual dengan berbilang entri untuk setiap pengecam unik dan anda perlu mendapatkan hanya baris unik yang mewakili tarikh rekod paling awal untuk setiap pengecam. Ini amat berguna apabila berurusan dengan tarikh rekod pendua.
Berikut ialah pertanyaan SQL yang menyelesaikan masalah ini dengan cekap:
<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 berfungsi dalam dua langkah:
Cari Tarikh Minimum: Pertanyaan dalaman (SELECT id, MIN(record_date) AS MinDate FROM MyTable GROUP BY id
) mengenal pasti record_date
minimum untuk setiap id
unik.
Pilih Baris Padanan: Pertanyaan luar bergabung dengan hasil pertanyaan dalam dengan jadual asal (MyTable
). Ia hanya memilih baris daripada MyTable
di mana kedua-dua id
dan record_date
sepadan dengan tarikh minimum yang terdapat dalam pertanyaan dalam.
Hasil akhir mengandungi hanya baris dengan record_date
terawal untuk setiap pengecam unik, menghapuskan baris pendua dengan tarikh rekod yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Berbeza dengan Nilai Minimum untuk Medan Tertentu dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!