Сумма столбца из подзапроса дает странный результат - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь суммировать значения из столбца, полученного в результате подзапроса.

Мой код выглядит следующим образом:

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 состояние

...