Me funciona con SQLFiddle, no estoy seguro de por qué no funcionaría para usted. Pero tengo una explicación de por qué podría no funcionar para usted y por qué la alternativa funcionaría ...
Su ejemplo está utilizando una palabra clave como nombre de columna, que puede no funcionar siempre. Pero cuando la columna está solo en una sub-expresión, el motor de consulta puede descartar el nombre (de hecho lo hace probalmente), por lo que puede descartarse el hecho de que potencialmente entra en conflicto con una palabra clave.
EDIT: en respuesta a su edición/comentario. No, los dos no son equivalentes. El RESULTADO sería equivalente, pero el proceso para llegar a ese resultado no es para nada similar. Para que el primero funcione, el analizador realiza un trabajo que simplemente no tiene sentido (aplicando un agregado a un solo valor, ya sea fila por fila o como), en el segundo caso, un agregado se aplica a una mesa. El hecho de que la tabla sea una tabla virtual temporal no tendrá importancia para la función agregada.
La primera manera también debería funcionar. ¿Cuál es el error que estás recibiendo? – dasblinkenlight
@Michael se preocupa por compartir el error que está recibiendo cuando ejecuta el primer sql. Debería funcionar bien. –
Un agregado escalar (No 'GROUP BY') siempre devuelve exactamente una fila. ¿Bajo qué circunstancias tendría sentido aplicar un agregado a esa fila? Un agregado vectorial devuelve una fila por grupo. Aunque a veces podría ser útil aplicar otra agregación al resultado de eso, necesitaría un diferente 'GROUP BY 'aplicado para los dos agregados para que esto sea útil. –