154
Глава 8. Группировка и агрегаты
| 10 |
| 10 |
| 10 |
| 10 |
| 10 |
| 10 |
| 10 |
| 13 |
| 13 |
| 13 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
| 16 |
++
24 rows in set (0.01 sec)
В
таблице
account
всего 24 строки, поэтому относительно просто уви
деть, что счета открывались четырьмя сотрудниками и что сотрудник
с ID 16 открыл шесть счетов. Но для банка с десятками сотрудников
и тысячами открываемых счетов этот подход
оказался бы очень уто
мительным и подверженным ошибкам.
Вместо этого можно с помощью
блока
group
by
(группировать по) попро
сить сервер БД сгруппировать данные. Вот тот же запрос, но с примене
нием блока
group
by
для группировки данных о счетах по ID сотрудника:
mysql>
SELECT open_emp_id
> FROM account
> GROUP BY open_emp_id;
++
| open_emp_id |
++
| 1 |
| 10 |
| 13 |
| 16 |
++
4 rows in set (0.00 sec)
Результирующий набор содержит по одной строке для каждого от
дельного значения столбца
open_emp_id
,
что в результате дает четыре,
а не 24 строки. Этот результирующий набор получился меньшим, по
тому что каждый из четырех сотрудников открыл больше одного сче
та. Чтобы увидеть, сколько
счетов открыл каждый сотрудник, в блоке
select
можно подсчитать количество строк в каждой группе с помо
щью
агрегатной функции
(
aggregate function
):
mysql>
Достарыңызбен бөлісу: