É assim que o GROUP BY funciona. Leva várias linhas e as transforma em uma linha. Por isso, tem que saber o que fazer com todas as linhas combinadas onde existem valores diferentes para algumas colunas (campos). É por isso que você tem duas opções para cada campo que deseja SELECT :Incluir na cláusula GROUP BY ou usá-lo em uma função de agregação para que o sistema saiba como você deseja combinar o campo.
Por exemplo, digamos que você tenha esta tabela:
Name | OrderNumber
------------------
John | 1
John | 2
Se você disser GROUP BY Name, como ele saberá qual OrderNumber mostrar no resultado? Portanto, você inclui OrderNumber em group by, o que resultará nessas duas linhas. Ou você usa uma função de agregação para mostrar como lidar com OrderNumbers. Por exemplo,
MAX(OrderNumber)
, o que significa que o resultado é John | 2
ou SUM(OrderNumber)
o que significa que o resultado é John | 3
.