Denne kan løse dit problem:
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
;
Det er måske ikke så hurtigt som andre svar, men det er en anden version... prøv det. Hvis du har en Data3 kolonne i din tabel, kan du kopiere/indsætte Data1 kolonne og skift blot alle referencer i denne kolonne til den nye.
Bare for at forklare, hvordan dette virker:group_concat funktion sammenkæder alle ikke-nullværdier i en kolonne med en separator (, som standard). Du kan bestille kolonnen før sammenkædningen. Det fungerer lidt som en vinduesfunktion i Oracle, Postgre og andre... substring_index får bare den første sammenkædede værdi, da listen er i faldende tidsrækkefølge.