Mengekstrak Data Terkini daripada Rekod SQL Berkumpulan
Jadual pangkalan data selalunya mengandungi berbilang entri untuk kumpulan yang sama, setiap satu dengan tarikh yang berbeza. Mengenal pasti dan mendapatkan semula data daripada rekod dengan tarikh terbaharu, semasa menggunakan penapis tertentu, adalah tugas analisis data yang biasa. Proses ini boleh dikendalikan dengan cekap menggunakan SQL.
Berikut ialah penyelesaian menggunakan pendekatan dua langkah:
Pertama, kami mencari tarikh maksimum untuk setiap kumpulan:
<code class="language-sql">SELECT group_id, MAX(record_date) AS max_date FROM data_table WHERE check_value > 0 GROUP BY group_id;</code>
Pertanyaan ini menentukan record_date
terkini untuk setiap group_id
dengan check_value
lebih besar daripada sifar. Nota: Menggunakan group
dan date
sebagai nama lajur biasanya tidak digalakkan kerana kemungkinan konflik dengan kata kunci SQL. Saya telah menggunakan group_id
dan record_date
sebaliknya.
Seterusnya, kami menyambungkan hasil ini kembali ke jadual asal untuk mendapatkan maklumat baris yang lengkap:
<code class="language-sql">SELECT dt.group_id, dt.record_date, dt.check_value, dt.other_column FROM data_table dt INNER JOIN ( SELECT group_id, MAX(record_date) AS max_date FROM data_table WHERE check_value > 0 GROUP BY group_id ) AS max_dates ON dt.group_id = max_dates.group_id AND dt.record_date = max_dates.max_date;</code>
Ini INNER JOIN
menggabungkan hasil pertanyaan pertama dengan jadual asal (data_table
), hanya memilih baris yang group_id
dan record_date
sepadan dengan tarikh maksimum yang dikenal pasti dalam subkueri. Ini menyediakan data baris lengkap untuk setiap rekod terbaharu kumpulan, memenuhi kriteria yang ditentukan. other_column
mewakili mana-mana lajur tambahan yang anda ingin dapatkan semula. Ingat untuk menggantikan data_table
, group_id
, record_date
, check_value
dan other_column
dengan nama jadual dan lajur sebenar anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Tarikh Maksimum dan Data Sepadan daripada Set Data Berkumpulan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!