¿Por qué necesito especificar explícitamente todas las columnas en una cláusula SQL "GROUP BY"? ¿Por qué no "GROUP BY *"?

Esto siempre me ha molestado: ¿por qué la cláusula GROUP BY en una declaración SQL requiere que incluya todas las columnas no agregadas? Estas columnas deben incluirse de forma predeterminada, una especie de "GROUP BY *", ya que ni siquiera puedo ejecutar la consulta a menos que estén todas incluidas. Cada columna debe ser un agregado o especificarse en "GROUP BY", pero parece que todo lo que no esté agregado debe agruparse automáticamente.

Tal vez sea parte del estándar ANSI-SQL, pero aun así, no entiendo por qué. ¿Alguien puede ayudarme a comprender la necesidad de esta convención?

Respuestas a la pregunta(3)

Su respuesta a la pregunta