Трябва да поставите всички колони на SELECT в GROUP BY или използвайте функции върху тях, които компресират резултатите до една стойност (като MIN , MAX или SUM ).
Един прост пример, за да разберете защо това се случва:Представете си, че имате база данни като тази:
FOO BAR
0 A
0 B
и изпълнявате SELECT * FROM table GROUP BY foo . Това означава, че базата данни трябва да върне един ред като резултат с първата колона 0 за да изпълни GROUP BY но вече има две стойности на bar да избирате от. Какъв резултат бихте очаквали - A или B ? Или базата данни трябва да върне повече от един ред, нарушавайки договора на GROUP BY ?