Toto může vyřešit váš problém:
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
;
Možná to není tak rychlé jako jiné odpovědi, ale je to jiná verze... zkuste to. Pokud máte Data3
ve vaší tabulce můžete zkopírovat/vložit Data1
a stačí změnit všechny odkazy tohoto sloupce na nový.
Jen pro vysvětlení, jak to funguje:group_concat
funkce zřetězí všechny nenulové hodnoty sloupce s oddělovačem (,
ve výchozím stavu). Sloupec si můžete objednat před zřetězením. Funguje to trochu jako funkce okna v Oracle, Postgre a dalších... The substring_index
právě získává první zřetězenou hodnotu, protože seznam je v sestupném pořadí.