sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo obtener el primer y último registro de un registro agrupado en una consulta MySQL con funciones agregadas?

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.