Vuoi usare GROUP_CONCAT
e SUBSTRING_INDEX
:
SUBSTRING_INDEX( GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1 ) AS open
SUBSTRING_INDEX( GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1 ) AS close
Ciò evita costose sottoquery e lo trovo generalmente più efficiente per questo particolare problema.
Consulta le pagine di manuale di entrambe le funzioni per comprendere le loro argomentazioni oppure consulta questo articolo che include un esempio di come eseguire conversione timeframe in MySQL per ulteriori spiegazioni.