Detta är en ny sak i MySQL 5.7 och är en varning om att din fråga är tvetydig.
Tänk på följande tabell:
id | name | age | points
--------------------------------------------
1 Bob 21 1
2 James 14 1
3 Bob 21 3
4 James 14 2
5 Casey 17 3
Om du gjorde följande fråga:
SELECT name, age, SUM(points) FROM scores GROUP BY name
Sedan name
kolumn används för gruppering. Observera att age
kan ha flera värden, så det är "icke aggregerat". Du måste göra något för att kollapsa dessa värden.
Beteendet i 5.6 och tidigare var att bara välja den första beroende på sorteringsordning, även om detta ibland var oförutsägbart och skulle misslyckas. I 5.7 hindrar de dig från att göra det i första hand.
Lösningen här är att gruppera på det också, eller att tillämpa en aggregatoperator som MIN()
till det.