Ho uno strano errore. Ho codice SQL che assomiglia a:SUM() tutti i risultati (nessuna clausola group by)
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
...
Questo funziona bene sulla mia installazione MAMP, ma non lo fa sul mio server remoto. Presumo che ci sia un'opzione di configurazione da qualche parte che gli impedisca di funzionare.
Questo è l'errore che sto ricevendo:
miscelazione di colonne GROUP (MIN(), MAX(), COUNT(), ...), con nessun gruppo colonne è illegale se non v'è nessuna clausola GROUP bY
so che cosa l'errore mi sta dicendo, ma il problema è che io non voglio al gruppo da nulla. Voglio ottenere tutti i risultati dove il bit where (rimosso per brevità) corrisponde e quindi restituire il SUM()
della colonna number
(come line
o drug
in base alla clausola CASE
).
Quindi, in sostanza, a prescindere da ciò che è abbinati dal WHERE
clausola di tutto quello che voglio è tornare fila:
line | drug
-----------
10 | 32
C'è un modo per aggirare questo a tutti? O in qualsiasi modo posso GROUP BY nothing
o qualcosa del genere?
Pubblicare come commento, perché è solo una risposta parziale: questo errore può verificarsi solo se è attiva la modalità SQL "ONLY_FULL_GROUP_BY' (vedere [http://dev.mysql.com/doc/refman/5.6/ en/group-by-hidden-columns.html] (http://dev.mysql.com/doc/refman/5.6/en/group-by-hidden-columns.html)), quindi la differenza tra l'installazione MAMP e il tuo server remoto potrebbe essere semplicemente che non hai abilitato questa modalità SQL nell'installazione di MAMP. – ruakh