При использовании пустого группирующего набора Oracle не будет возвращать никаких строк даже при использовании агрегатных функций.
Например, этот запрос без предложения GROUP BY
:
select count(*)
from dual
where 1 = 0;
дает:
COUNT(*)
----------
0
, тогда как этот запрос с GROUP BY ()
:
select count(*)
from dual
where 1 = 0
group by ();
не возвращает никаких строк.
Как я могу заставить Oracle вернуть хотя бы одна строка, даже если запрос содержит предложение GROUP BY
?
Можно ли это сделать с помощью GROUPING SETS
, ROLLUP
, CUBE
или другого предложения GROUP BY
?
Я бы не хотел использовать UNION ALL
.