1
respuesta

Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column

Buenas.... En el último código: Uso de Case con otros comandos: Tema 03. Al aplicarlo en Workbench, arroja el erro: Error Error Code: 1055. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'jugos_ventas.tabla_de_productos.NOMBRE_DEL_PRODUCTO' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by.

Dicho código es: SELECT ENVASE, SABOR, CASE WHEN PRECIO_DE_LISTA >= 12 THEN 'Costoso' WHEN PRECIO_DE_LISTA >= 5 AND PRECIO_DE_LISTA < 12 THEN 'Asequible' ELSE 'Barato' END AS PRECIO, MIN(PRECIO_DE_LISTA) AS PRECIO_MINIMO FROM tabla_de_productos WHERE TAMANO = '700 ml' GROUP BY ENVASE, CASE WHEN PRECIO_DE_LISTA >= 12 THEN 'Costoso' WHEN PRECIO_DE_LISTA >= 5 AND PRECIO_DE_LISTA < 12 THEN 'Asequible' ELSE 'Barato' END ORDER BY ENVASE;

Cómo se podría solucionar este Error sin tener que manejar la configuración del SQL (Set sql......) Muchisimas gracias de antemano...

1 respuesta

Hola quizá esto te pueda ayudar:

"El error "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by" en MySQL se produce debido a la configuración del modo SQL (SQL mode) llamado "ONLY_FULL_GROUP_BY". Este modo es una característica de MySQL que afecta la forma en que las consultas SQL manejan las columnas en una cláusula GROUP BY. Cuando este modo está habilitado, MySQL es más estricto en cuanto a las consultas que involucran GROUP BY, y requiere que todas las columnas en la lista SELECT o en las funciones de agregación estén presentes en la cláusula GROUP BY.

Si estás obteniendo este error, significa que estás ejecutando una consulta que no cumple con las restricciones de "ONLY_FULL_GROUP_BY". Pueden haber varias razones para esto, como:

Columnas faltantes en GROUP BY: No todas las columnas no agregadas en la lista SELECT están presentes en la cláusula GROUP BY.

Uso de funciones de agregación: Si utilizas funciones de agregación como COUNT(), SUM(), AVG(), etc., en la lista SELECT, debes asegurarte de que todas las demás columnas no agregadas estén en GROUP BY.

Uso de expresiones complejas: Si usas expresiones o cálculos complejos en la lista SELECT, es posible que MySQL no pueda determinar cómo agrupar los resultados.

Para resolver este error, debes adaptar tu consulta SQL para cumplir con las restricciones de "ONLY_FULL_GROUP_BY". Esto generalmente implica agregar las columnas faltantes a la cláusula GROUP BY o eliminar las columnas que no deben estar allí."

Espero te sea útila! Saludos!