Суть в том, что я вижу значения, которые не группируются. Но при добавлении group by null
дубликаты объединяются, и сумма рассчитывается правильно.
Что означает group by null
, который решает дублирование?
Кстати, у меня есть проверил, что в результатах нет нулевых значений.
У меня есть запрос, который я не смог изолировать к тестовому запросу :(, но он похож на приведенный ниже.
Пример запроса :
select
a,
sum(value) as s
from
my_table
group by
a;
Результат:
a | s
-----
x | 3
x | 8
При добавлении group by null
:
select
a,
sum(value) as s
from
my_table
group by
a,
null;
Res:
a | s
-----
x | 11
Oracle версия, которая является RDS Амазонки (select * from v$version
):
BANNER CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 0
PL/SQL Release 12.1.0.2.0 - Production 0
CORE 12.1.0.2.0 Production 0
TNS for Linux: Version 12.1.0.2.0 - Production 0
NLSRTL Version 12.1.0.2.0 - Production 0
Я не уверен, если уместно, но фактический запрос является иерархическим: select from (select ...) group by...
, и он использует хранимую процедуру для вычисления значений.