Изучаем sql


SELECT product_cd, open_branch_id



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

165
SELECT product_cd, open_branch_id,
SUM(avail_balance) tot_balance
FROM account
GROUP BY product_cd, open_branch_id WITH CUBE;
++++
| product_cd | open_branch_id | tot_balance |
++++
| NULL | NULL | 170754.46 |
| NULL | 1 | 27882.57 |
| NULL | 2 | 21361.32 |
| NULL | 3 | 53270.25 |
| NULL | 4 | 68240.32 |
| BUS | 2 | 9345.55 |
| BUS | 4 | 0.00 |
| BUS | NULL | 9345.55 |
| CD | 1 | 11500.00 |
| CD | 2 | 8000.00 |
| CD | NULL | 19500.00 |
| CHK | 1 | 782.16 |
| CHK | 2 | 3315.77 |
| CHK | 3 | 1057.75 |
| CHK | 4 | 67852.33 |
| CHK | NULL | 73008.01 |
| MM | 1 | 14832.64 |
| MM | 3 | 2212.50 |
| MM | NULL | 17045.14 |
| SAV | 1 | 767.77 |
| SAV | 2 | 700.00 |
| SAV | 4 | 387.99 |
| SAV | NULL | 1855.76 |
| SBL | 3 | 50000.00 |
| SBL | NULL | 50000.00 |
++++
25 rows in set (0.02 sec)
Применение 
with
cube
дает на четыре строки больше, чем версия запро
са с 
with
rollup
, по одной для каждого из четырех ID отделений. Как
и в случае с 
with
rollup
, значения 
null
в столбце 
product_cd
обозначают
то, что производится суммирование по отделениям.
При работе с Oracle Database для указания на операцию 
cube
также применяется немного отличающийся синтаксис. Блок
group by
из предыдущего запроса для Oracle выглядел бы так:
GROUP BY CUBE(product_cd, open_branch_id)
Условия групповой фильтрации
В главе 4 были представлены различные типы условий фильтрации
и показано, как их можно использовать в блоке 
where
. При группировке
данных тоже можно применять условия фильтрации к данным 
после


166

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




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

    Басты бет