Quiere usar GROUP_CONCAT
y 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
Esto evita subconsultas costosas y, en general, lo encuentro más eficiente para este problema en particular.
Consulte las páginas del manual de ambas funciones para comprender sus argumentos, o visite este artículo que incluye un ejemplo de cómo hacer conversión de períodos de tiempo en MySQL para más explicaciones.