Я пытаюсь суммировать значения из столбца, полученного в результате подзапроса.
Мой код выглядит следующим образом:
select reg_code, year, sum(share) from (
select distinct on(id, seq) reg_code, year, id, share from t
) as t_
group by reg_code, year
order by reg_code, year
Я проверял результаты с примерным условием (регион-год), а именно, где применяется reg_code = 'HU323' and year = 1996
.
Подзапрос дает следующий результат для этого условия:
reg_code year id share
"HU323" 1996 24524639 0.50000000000000000000
"HU323" 1996 26318251 0.0769230769230769
"HU323" 1996 27417479 0.50000000000000000000
"HU323" 1996 46279087 0.50000000000000000000
Кроме того, работает
select reg_code, year, sum(share) from (
select distinct on(id, seq) reg_code, year, id, share from t
where reg_code = 'HU323' and year = 1996
) as t_
group by reg_code, year
order by reg_code, year
выдает
"HU323" 1996 1.57692307692307690000
, как и ожидалось.
Однако, если я выполняю этот запрос без условия, указанная комбинация c регион-год игнорируется, и я не могу найти ее в выходных данных (но есть и другие регионы-годы в выходных данных).
Мне интересно, связано ли это с испорченными типами данных (share is numberri c), но суммирование работает, как только я задаю WHERE состояние