Tengo un error extraño. Tengo el código SQL que se parece a:SUM() todos los resultados (sin grupo por cláusula)
SELECT
adverse_reaction_type_id,
SUM(CASE adverse_reaction_type_id WHEN 1 THEN `number` ELSE 0 END) line,
SUM(CASE adverse_reaction_type_id WHEN 2 THEN `number` ELSE 0 END) drug
FROM
core_reports_adverse_reactions,
...
WHERE
...
Esto funciona muy bien en mi instalación de MAMP, pero no lo hace en mi servidor remoto. Supongo que hay una opción de configuración en alguna parte que impide que funcione.
Este es el error que estoy recibiendo:
Mezcla de columnas GROUP (MIN(), MAX(), COUNT(), ...) sin grupo columnas es ilegal si hay ninguna cláusula GROUP BY
sé lo que el error me está diciendo, pero el problema es que yo no quiero agrupar por cualquier cosa. Quiero obtener todos los resultados donde coincida el bit de dónde (eliminado para mayor brevedad) y luego devolver el SUM()
de la columna number
(como line
o drug
según la cláusula CASE
).
Así que, esencialmente, independientemente de lo que se emparejados por la cláusula WHERE
todo lo que quiero es volver consecutivas:
line | drug
-----------
10 | 32
¿Hay una forma de evitar esto en absoluto? O de cualquier manera que pueda GROUP BY nothing
o algo?
Publicando como comentario, porque es solo una respuesta parcial: este error solo puede ocurrir si tiene habilitado el modo SQL 'ONLY_FULL_GROUP_BY' (ver [http://dev.mysql.com/doc/refman/5.6/ es/group-by-hidden-columns.html] (http://dev.mysql.com/doc/refman/5.6/en/group-by-hidden-columns.html)), por lo que la diferencia entre su instalación de MAMP y su servidor remoto podría ser simplemente que no tiene habilitado ese modo SQL en su instalación de MAMP. – ruakh