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.