Как работает GROUP BY? - PullRequest
       5

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

37 голосов
/ 15 сентября 2011

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

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

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

Ответы [ 3 ]

58 голосов
/ 15 сентября 2011

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

14 голосов
/ 15 сентября 2011

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

7 голосов
/ 13 июня 2017

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...