Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Gt; SUM(avail_balance) tot_balance _> FROM account

Временные функции, возвращающие числа | Функции преобразования | Упражнения | Принципы группировки | Gt; FROM account | Агрегатные функции | Сравнение неявных и явных групп | Gt; FROM account | Использование выражений | Обработка значений Null |


Читайте также:
  1. Answer the following questions using your own words but taking into account the
  2. Aufrisszone ~~> Ort wo man mit hoher WahrscheinlichkeiteinenFreund / eine Freundin kennen lernen kann
  3. Burnen ~~> attraktiv. bewundernswert,cool
  4. Dönern~~> eine Blähung haben
  5. Faker ~~> Simulant
  6. FROM account
  7. Gesichtselfmeter ~~> unattraktives Gesicht

_> GROUP BY product_cd, open_branch_id WITH ROLLUP;

 

+____________+________________+_____________+ | product_cd | open_branch_id | tot_balance | +____________+________________+_____________+

 

| BUS |   | 9345.55 |
| BUS |   | 0.00 |
| BUS | NULL | 9345.55 |
| CD |   | 11500.00 |

 

          Глава 8. Группировка и агрегаты
           
| CD |   | 8000.00 |
| CD | NULL | 19500.00 |
| CHK |   | 782.16 |
| CHK |   | 3315.77 |
| CHK |   | 1057.75 |
| CHK |   | 67852.33 |
| CHK | NULL | 73008.01 |
| MM |   | 14832.64 |
| MM |   | 2212.50 |
| MM | NULL | 17045.14 |
| SAV |   | 767.77 |
| SAV |   | 700.00 |
| SAV |   | 387.99 |
| SAV | NULL | 1855.76 |
| SBL |   | 50000.00 |
| SBL | NULL | 50000.00 |
| NULL | NULL | 170754.46 |

 

+____________+________________+_____________+ 21 rows in set (0.02 sec)

 

Теперь имеется семь дополнительных результатов, по одному для каж_ дого из шести разных типов счетов, и один – общая сумма (для всех ти_ пов счетов). Для шести обобщений по типам счетов столбец open_ branch_id содержит значение null, поскольку обобщение осуществляет_ ся по всем отделениям. Например, взглянув на строку #3 результата, можно заметить, что всего по счетам BUS во всех отделениях внесено 9 345,55 долларов. Строка итоговой суммы в обоих столбцах, prod_ uct_cd и open_branch_id, содержит значение null. Последняя строка вы_ ходных данных показывает общую сумму 170 754,46 долларов для всех типов счетов и всех отделений.

При работе с Oracle Database для выполнения обобщения приме_ няется немного отличающийся синтаксис. Блок group by из пре_ дыдущего запроса при использовании в Oracle выглядел бы так:

 

GROUP BY ROLLUP(product_cd, open_branch_id)

 

Преимущество этого синтаксиса в том, что он позволяет выпол_ нять обобщения для подмножества столбцов в блоке group by. Например, если группировка осуществляется по столбцам a, b и c, можно было бы указать, что сервер должен проводить обоб_ щения только для b и c:

 

GROUP BY a, ROLLUP(b, c)

 

Если кроме суммы по типам счетов требуется подсчитать сумму по каж_ дому отделению, можно использовать вариант with cube, который фор_ мирует строки суммы для всех возможных сочетаний группирующих столбцов. К сожалению, with cube недоступен в MySQL версии 4.1, но есть в SQL Server и Oracle Database. Вот пример использования with cube (я убрал приглашение mysql>, чтобы показать, что этот запрос пока нельзя осуществить в MySQL):


 

Условия групповой фильтрации  
   

 


Дата добавления: 2015-08-17; просмотров: 64 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Группировка по нескольким столбцам| FROM account

mybiblioteka.su - 2015-2024 год. (0.006 сек.)