Результат выполнения команды будет следующим:
| c1
| c2
|
|
|
|
|
| NULL
|
|
|
|
|
|
|
|
|
|
|
| NULL
|
|
|
|
|
| NULL
|
|
|
|
|
| NULL
|
|
|
|
|
| NULL
|
|
|
|
|
| NULL
|
| NULL
| NULL
|
| NULL
|
|
| NULL
|
|
| NULL
|
|
| NULL
|
|
| NULL
|
|
| NULL
|
|
Теперь рассмотрим пример использования оператора GROUP BY c опцией WITH ROLLUP:
SELECT c1, c2 FROM table1 GROUP BY c1, c2 WITH ROLLUP
Результат выполнения команды будет следующим:
| c1
| c2
|
|
|
|
|
| NULL
|
|
|
|
|
|
|
|
|
|
|
| NULL
|
|
|
|
|
| NULL
|
|
|
|
|
| NULL
|
|
|
|
|
| NULL
|
|
|
|
|
| NULL
|
| NULL
| NULL
|
Пример 7.
Горизонтальные объединения.
UNION:
SELECT * FROM table1 WHERE c2 <=2
UNION
SELECT * FROM table2 WHERE c2 > 3
Результат:
EXCEPT:
SELECT * FROM table1 WHERE c2 = 2
EXCEPT
SELECT * FROM table2 WHERE c2 = 2
Результат:
INTERSECT:
SELECT * FROM table1 WHERE c2 = 2
INTERSECT
SELECT * FROM table2 WHERE c2 = 2
Результат:
Пример 8.
Использование секции COMPUTE.
SELECT * FROM table1 WHERE c1 <= 6 ORDER BY c1, c2, c3 COMPUTE avg(c1), sum(c1)
Результат:
Теперь рассмотрим пример команды SELECT секцией COMPUTE … BY:
SELECT * FROM table1 WHERE c1 <= 6 ORDER BY c1, c2, c3
COMPUTE avg(c1), sum(c1) BY c1
Результат:
Пример 9.
Секция WITH и применение common table expressions (CTE).
Простейший пример использования CTE (CTE выступает в роли обычного представления):
WITH cte_1
AS
(
SELECT c1, c2 FROM table1
INTERSECT
SELECT c1, c2 FROM table2
)
SELECT * FROM cte_1 WHERE c1 < 6
Результат запроса:
Пример использования рекурсивного CTE: