Yang ini mungkin menyelesaikan masalah Anda:
select
record_id,
substring_index(group_concat(Data1 order by Time desc), ',', 1) Data1,
substring_index(group_concat(Data2 order by Time desc), ',', 1) Data2,
substring_index(group_concat(Time order by Time desc), ',', 1) Time
from records
group by record_id
;
Ini mungkin tidak secepat jawaban lain, tetapi versi lain ... cobalah. Jika Anda memiliki Data3
kolom di tabel Anda, Anda dapat menyalin/menempelkan Data1
kolom dan cukup ubah semua referensi kolom ini ke yang baru.
Hanya untuk menjelaskan cara kerjanya:group_concat
fungsi menggabungkan semua nilai non-null dari kolom dengan pemisah (,
secara default). Anda dapat memesan kolom sebelum penggabungan. Ini bekerja seperti fungsi jendela di Oracle, Postgre, dan lainnya... substring_index
baru saja mendapatkan nilai gabungan pertama, karena daftarnya dalam urutan waktu menurun.