Читайте также:
|
|
В некоторых случаях может понадобиться сформировать группы, ох_ ватывающие более одного столбца. Развивая предыдущий пример, представим, что требуется найти общие остатки не только по каждому типу счетов, но и по отделениям (например: каков общий остаток для всех текущих счетов, открытых в отделении Woburn?). Следующий пример демонстрирует, как это может быть реализовано:
mysql> | SELECT product_cd, open_branch_id, |
_> | SUM(avail_balance) tot_balance |
_> | FROM account |
_> | GROUP BY product_cd, open_branch_id; |
+____________+________________+_____________+ | product_cd | open_branch_id | tot_balance | +____________+________________+_____________+
| BUS | | | | | 9345.55 | | | |
| BUS | | | | | 0.00 | | | |
| CD | | | | | 11500.00 | | | |
| CD | | | | | 8000.00 | | | |
| CHK | | | | | 782.16 | | | |
| CHK | | | | | 3315.77 | | | |
| CHK | | | | | 1057.75 | | | |
| CHK | | | | | 67852.33 | | | |
| MM | | | | | 14832.64 | | | |
| MM | | | | | 2212.50 | | | |
| SAV | | | | | 767.77 | | | |
| SAV | | | | | 700.00 | | | |
| SAV | | | | | 387.99 | | | |
| SBL | | | | | 50000.00 | | |
+____________+________________+_____________+ 14 rows in set (0.00 sec)
Этот вариант запроса формирует 14 групп, по одной для каждого обна_ руженного в таблице account сочетания типа счетов и отделения. Стол_ бец open_branch_id добавлен в блок select, а также введен в блок group by, поскольку он извлекается из таблицы, а не формируется агрегатной функцией.
Формирование групп | |
Группировка посредством выражений
Кроме столбцов группировку данных можно выполнить на основании значений, сгенерированных выражениями. Рассмотрим запрос, кото_ рый группирует сотрудников по году начала их работы в банке:
mysql> SELECT EXTRACT(YEAR FROM start_date) year,
Дата добавления: 2015-08-17; просмотров: 56 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Обработка значений Null | | | Gt; SUM(avail_balance) tot_balance _> FROM account |