this is incompatible with sql_mode=only_full_group_by

Se si prova a mandare in esecuzione una query come questa sotto:

SELECT IdSoggetto, sum(carico) as carico, sum(scarico) as scarico, FROM tabella where (uCase(id) like ‘%xxx%’ or uCase(Soggetto) like ‘%xxx%’ or uCase(IdSoggetto)like ‘%xxx%’) and IdSoggetto=’2′ group by Soggetto, data, Operatore order by Soggetto,Data

e si sta usando un database MySql di versione 5.7 o superiore verra restituito un errore di tipo:

this is incompatible with sql_mode=only_full_group_by

Laddove si avesse la possibilità di amministrare il database basterebbe settare le variabili globali del DB in questo modo:

#Disable the ONLY_FULL_GROUP_BY option from SQL it will work mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,’ONLY_FULL_GROUP_BY’,”));

Ma se come invece è successo a me, si sta utilizzando un databse mysql posto su aruba, per il quale non si hanno i diritti di amministratore, allora occorre fare diversamente:
OCCORRE INSERIRE OGNI NOME CAMPO NON COMPRESO NELLA CLAUSOLA group by, nella funzione ANY_VALUE quindi la quesry di prima diventa:

SELECT ANY_VALUE(IdSoggetto), sum(carico) as carico, sum(scarico) as scarico, FROM tabella where (uCase(id) like ‘%xxx%’ or uCase(Soggetto) like ‘%xxx%’ or uCase(IdSoggetto)like ‘%xxx%’) and IdSoggetto=’2′ group by Soggetto, data, Operatore order by Soggetto,Data

in questo modo verrà eseguita senza sollevare errori.

N.B. questa funzione (ANY_VALUE) non è presente su versioni mysql precedenti

this is incompatible with sql_mode=only_full_group_by