Den här kan lösa ditt 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 kanske inte är lika snabbt som andra svar, men det är en annan version... prova. Om du har en Data3
kolumnen i tabellen kan du kopiera/klistra in Data1
och ändra bara alla referenser i denna kolumn till den nya.
Bara för att förklara hur detta fungerar:group_concat
funktion sammanfogar alla icke-nullvärden i en kolumn med en separator (,
som standard). Du kan beställa kolumnen före sammanlänkningen. Det fungerar lite som en fönsterfunktion i Oracle, Postgre och andra... substring_index
får bara det första sammanlänkade värdet, eftersom listan är i fallande tidsordning.