Не уверен, что это поможет, но у вас есть что-то вроде этого:
select aid_year, count(1) c1,
(select count(1)
from (select distinct person_uid
from award_by_aid_year a
where a.aid_year = fas.aid_year))
from finaid_applicant_status fas
group by aid_year;
Этот запрос выдает ORA-00904 FAS.AID_YEAR invalid identifier
. Это потому, что fas.aid_year
вложено слишком глубоко в подзапрос.
Если вы можете изменить свой подзапрос с select count(1) from (select distinct sth from ... where year = fas.year)
до select count(distinct sth) from ... where year = fas.year
, тогда он может работать.
select aid_year, count(1) c1,
(select count(distinct person_uid)
from award_by_aid_year a
where a.aid_year = fas.aid_year) c2
from finaid_applicant_status fas
group by aid_year
Здесь упрощенно demo , показывающий нерабочие и рабочие запросы. Конечно, ваш запрос намного сложнее, но это то, что вы можете проверить.
Также, может быть, вы можете использовать dbfiddle или sqlfiddle для настройки тестового примера? Или покажите нам выборочные (анонимизированные) данные и требуемый для них вывод?