Изучаем sql



Pdf көрінісі
бет143/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   139   140   141   142   143   144   145   146   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )


Глава 8. Группировка и агрегаты
| CHK | 73008.01 |
| MM | 17045.14 |
| SAV | 1855.76 |
| SBL | 50000.00 |
+++
6 rows in set (0.00 sec)
Этот запрос формирует шесть групп, по одной для каждого типа сче
тов, и затем суммирует доступные остатки по всем строкам в каждой
группе.
Группировка по нескольким столбцам
В некоторых случаях может понадобиться сформировать группы, ох
ватывающие 
более 
одного столбца. Развивая предыдущий пример,
представим, что требуется найти общие остатки не только по каждому
типу счетов, но и по отделениям (например: каков общий остаток для
всех текущих счетов, открытых в отделении 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 | 2 | 9345.55 |
| BUS | 4 | 0.00 |
| CD | 1 | 11500.00 |
| CD | 2 | 8000.00 |
| CHK | 1 | 782.16 |
| CHK | 2 | 3315.77 |
| CHK | 3 | 1057.75 |
| CHK | 4 | 67852.33 |
| MM | 1 | 14832.64 |
| MM | 3 | 2212.50 |
| SAV | 1 | 767.77 |
| SAV | 2 | 700.00 |
| SAV | 4 | 387.99 |
| SBL | 3 | 50000.00 |
++++
14 rows in set (0.00 sec)
Этот вариант запроса формирует 14 групп, по одной для каждого обна
руженного в таблице 
account
сочетания типа счетов и отделения. Стол
бец 
open_branch_id
добавлен в блок 
select
, а также введен в блок 
group
by
,
поскольку он извлекается из таблицы, а не формируется агрегатной
функцией.


Формирование групп
163


Достарыңызбен бөлісу:
1   ...   139   140   141   142   143   144   145   146   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет