Подтвердить что ты не робот

Как работает GROUP BY?

Предположим, что у меня есть таблица Tab1 с атрибутами - a1, a2,... и т.д. Ни один из атрибутов не уникален.

Какова будет природа следующего запроса? Будет ли он возвращать одну строку всегда?

SELECT a1, a2, sum(a3) FROM Tab1 GROUP BY a1, a2
4b9b3361

Ответ 1

GROUP BY возвращает одну строку для каждой уникальной комбинации полей GROUP BY. Таким образом, в вашем примере каждая отдельная комбинация (a1, a2), встречающаяся в строках Tab1, приводит к строке в запросе, представляющем группу строк с заданной комбинацией группы по значениям полей. Агрегатные функции, такие как SUM(), вычисляются по членам каждой группы.

Ответ 2

GROUP BY возвращает одну строку для каждой уникальной комбинации полей в предложении GROUP BY. Чтобы обеспечить только одну строку, вам нужно будет использовать агрегатную функцию - COUNT, SUM, MAX - без предложения GROUP BY.

Ответ 3

GROUP BY группирует все идентичные записи.

SELECT COUNT(ItemID), City
FROM Orders
GROUP BY City;

----------------------------------------
13  Sacrmento
23  Dallas
87  Los Angeles
5   Phoenix

Если вы не группируете City, он просто отображает общее количество ItemID.