Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Duda con la parte final del video

Hola, ¿qué tal? Al introducir la linea:

SELECT ESTADO, BARRIO, MAX(LIMITE_DE_CREDITO) AS LIMITE, EDAD FROM tabla_de_clientes WHERE EDAD >= 20 GROUP BY ESTADO, BARRIO ORDER BY EDAD;

Me sale el siguiente error:

Error Code: 1055. Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'jugos_ventas.tabla_de_clientes.EDAD' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

¿A qué se debe y cuál es su solución?

1 respuesta

¡Hola Harriet!

El error que estás viendo se debe al modo de SQL llamado "ONLY_FULL_GROUP_BY". Este modo de SQL es una configuración que requiere que todas las columnas mencionadas en la cláusula SELECT también estén presentes en la cláusula GROUP BY, a menos que sean utilizadas dentro de una función de agregación como SUM(), COUNT(), MAX(), MIN(), etc.

En tu consulta, estás seleccionando las columnas ESTADO, BARRIO, MAX(LIMITE_DE_CREDITO) y EDAD, pero solo estás agrupando por ESTADO y BARRIO. El problema es que la columna EDAD no está involucrada en ninguna función de agregación y tampoco está presente en la cláusula GROUP BY, lo que va en contra de la configuración "ONLY_FULL_GROUP_BY".

Para resolver este problema, tienes dos opciones:

1.Incluir la columna EDAD en la cláusula GROUP BY

2.Si no necesitas que la columna EDAD sea una columna de agrupación y solo deseas obtener la edad máxima para cada combinación de ESTADO y BARRIO, entonces debes eliminar la columna EDAD de la cláusula SELECT y solo usarla en la función de agregación MAX()

Elige la opción que mejor se adapte a lo que estás intentando lograr con tu consulta. La primera opción te dará los resultados para cada combinación única de ESTADO, BARRIO y EDAD, mientras que la segunda opción te dará los resultados para cada combinación única de ESTADO y BARRIO junto con la edad máxima correspondiente.

Espero que esto resuelva tu duda. Si tienes alguna otra pregunta, estaré encantado de ayudarte. ¡Buenos estudios!

Un saludo.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios