Para eso existe el MAX().
GREATEST() tiene otro uso, no es una función de tabla, sino de registro, por lo que no aplica para el caso:
Cita: GREATEST(value1,value2,...)
Con dos o más argumentos, retorna el argumento mayor (con valor mayor). Los argumentos se comparan usando las mismas reglas que para LEAST().
Vale decir, aplica a valores o campos diferentes que se encuentren en el mismo registro. No entre registros diferentes.