Вопрос по группировке group by!

kika

Всем привет!Есть вопрос по группировке!Запрос:
select 
	sum(A.pay),
	A.Name,
	A.LastName,
	A.Account,
	A.ID
FROM	
	Users A
Выдается ошибка:
Column 'A.Name' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Column 'A.LastName' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Column 'A.Account' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Column 'A.ID' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Будит ли меняться результат селекта в этом:
select 
	sum(A.pay),
	A.Name,
	A.LastName,
	A.Account,
	A.ID
FROM	
	Users A
GROUP BY
	A.Name,
	A.LastName,
	A.Account,
	A.ID
и этом:
select 
	sum(A.pay),
	A.Name,
	A.LastName,
	A.Account,
	A.ID
FROM	
	Users A
GROUP BY
	A.ID,
	A.LastName,
	A.Name,
	A.Account
случаях.Т.е. если менять местами поля в Group by!?
6 ответов

kika

Только порядок сортировки будет меняться


kika

А результат селекта нет? Т.е. если их потом упорядовить по какому-то полю?


kika

При чем тут порядок сортировки? Где вы order by увидели?2 kika:содержимое предложения group by - это то, что определяет группу - т.е. агрегатная функция (sum в данном случае) будет применяться к записям внутри каждой такой группы. Так что от порядка ничего не поменяется.


kika

Если A.ID - это PRIMARY KEY (судя по названию), то можно sum(A.pay) не писать, и GROUP BY A.ID, ... не нужен


kika

эт да. kika, вы чего сделать хотите?


kika

Ray D , спасибо! Вопрос был измениться ли результат селекта, если менять местами поля в group by!