¿Por qué MySQL permite consultas "agrupadas por" SIN funciones agregadas?

Sorpresa - esta es una consulta perfectamente válida en MySQL:

select X, Y from someTable group by X

Si probó esta consulta en Oracle o SQL Server, obtendría el mensaje de error natural:

Column 'Y' is invalid in the select list because it is not contained in 
either an aggregate function or the GROUP BY clause.

Entonces, ¿cómo determina MySQL qué Y mostrar para cada X? Solo escoge uno. Por lo que puedo decir, simplemente elige la primera Y que encuentra. La razón es que, si Y no es una función agregada ni en la cláusula de grupo por grupo, la especificación de "seleccionar Y" en su consulta no tiene sentido para empezar. Por lo tanto, yo, como motor de base de datos, devolveré lo que quiera y te gustará.

Incluso hay un parámetro de configuración de MySQL para desactivar esta "holgura".http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by

Este artículo incluso menciona cómo se ha criticado a MySQL por no ser compatible con ANSI-SQL en este sentido.http://www.oreillynet.com/databases/blog/2007/05/debunking_group_by_myths.html

Mi pregunta es:Por qué ¿MySQL fue diseñado de esta manera? ¿Cuál fue su razón para romper con ANSI-SQL?

Respuestas a la pregunta(6)

Su respuesta a la pregunta