Руководство по языку sql
Download 1.22 Mb. Pdf ko'rish
|
Firebird3 SQL features
order by id;
Результат id department salary percentage -- ---------- ------ ---------- 1 R & D 10.00 0.2040 2 SALES 12.00 0.2448 3 SALES 8.00 0.1632 4 R & D 9.00 0.1836 5 R & D 10.00 0.2040 Запрос повторяется и может работать довольно долго, особенно если EMPLOYEE является сложным представлением. Этот запрос может быть переписан в более быстрой и элегантной форме с использованием оконных функций: select id, department, salary, salary / sum(salary) OVER () percentage from employee order by id; Здесь sum(salary) OVER () вычисляет сумму всех зарплат из запроса (таблицы сотрудников). Секционирование Как и для агрегатных функций, которые могут работать отдельно или по отношению к группе, оконные функции тоже могут работать для групп, которые называются “секциями” (partition). Синтаксис: Для каждой строки, оконная функция обсчитывает только строки, которые попадают в то же самую секцию, что и текущая строка. Агрегирование над группой может давать более одной строки, таким образом, к результирующему набору, созданному секционированием, присоединяются результаты из основного запроса, используя тот же список выражений, что и для секции. Новые возможности языка SQL Firebird 3.0 6 Продолжая пример с сотрудниками, вместо того чтобы считать процент зарплаты каждого сотрудника от суммарной зарплаты сотрудников, посчитаем процент от суммарной зарплаты сотрудников того же отдела: select id, department, salary, salary / sum(salary) OVER ( Download 1.22 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling