Is this expected behavior?
select * from (select 1 a, 1 b from dual)
group by cube(a, b);
A B
---------- ----------
1 1
1 1
1 1
1 1
===
select * from (
select 1 a, 1 b from dual
union
select 1 a, 1 b from dual -- where 1 = 0
)
group by cube(a, b);
A B
---------- ----------
1
1
1 1
create table t as select 1 a, 1 b from dual;
select * from t group by cube(a, b);
A B
---------- ----------
1
1
1 1