Deze kan je probleem oplossen:
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
;
Het is misschien niet zo snel als andere antwoorden, maar is een andere versie ... probeer het eens. Als je een Data3
. hebt kolom in uw tabel, kunt u de Data1
. kopiëren/plakken kolom en verander gewoon alle verwijzingen van deze kolom naar de nieuwe.
Om uit te leggen hoe dit werkt:de group_concat
functie voegt alle niet-null-waarden van een kolom samen met een scheidingsteken (,
standaard). U kunt de kolom vóór de aaneenschakeling bestellen. Het werkt een beetje als een vensterfunctie in Oracle, Postgre en anderen... De substring_index
krijgt net de eerste aaneengeschakelde waarde, omdat de lijst in aflopende volgorde van tijd staat.