Това може да реши проблема ви:
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
;
Може да не е толкова бърз, колкото другите отговори, но е друга версия... опитайте. Ако имате Data3 колона във вашата таблица, можете да копирате/поставите Data1 колона и просто променете всички препратки на тази колона към новата.
Само за да обясня как работи това:group_concat функцията обединява всички ненулеви стойности на колона с разделител (, по подразбиране). Можете да поръчате колоната преди конкатенацията. Работи малко като прозоречна функция в Oracle, Postgre и други... substring_index просто получава първата свързана стойност, тъй като списъкът е в низходящ ред по време.