Для демонстрации возможностей оператора UNPIVOT для таблицы PVT получим традиционное (в виде набора строк) разбиение на группы, которое не имеет значений NULL. Этого можно достичь следующей командой SELECT:
в результате выполнения которой будет получено следующее множество строк:
с1
с2
Пример 6.
Использование секций WHERE, GROUP BY и HAVING.
Рассмотрим пример простейшей команды SELECT, которая формирует группы на основании столбца c1, причем для каждой группы формируется среднее значение по полю c2:
SELECT c1, avg(c2) as AVG_C2 FROM table1 WHERE c1 <> 2 GROUP BY ALL c1
Результат выполнения команды:
c1
AVG_C2
NULL
Т.к. использована опция ALL, то появляется строка со значениями (2, NULL), которая отсеивается секцией WHERE. Однако, если модифицировать комнаду, добавив в нее такую секцию HAVING:
SELECT c1, avg(c2) as AVG_C2 FROM table1 WHERE c1 <> 2 GROUP BY ALL c1
HAVING c1 <> 2
то строка (2, NULL) пропадет из результирующего множества.