У меня есть запрос (изначально написанный для SQL Server), который имеет несколько подзапросов в виде столбцов, который вычисляет количество.В SQL-сервере у меня есть уравнение, в котором для столбца задан подзапрос count, например:
Pass = (select count(*) from report.sub_2018 p where p.ABST = a.ABST and p.RESULT = 'P' and p.STATUS_REASON = 'Pending' and p.MONTH_YEAR = a.MONTH_YEAR)
Я пытаюсь запустить запрос в Vertica, но он не позволяетэтот тип «уравнения».Поэтому я попытался сделать что-то вроде
(select count(*) from report.sub_2018 p where p.ABST = a.ABST and p.RESULT = 'P' and p.STATUS_REASON = 'Pending' and p.MONTH_YEAR = a.MONTH_YEAR) as Pass
, но так как это связано с внешним запросом, я получаю сообщение об ошибке Correlated subquery with aggregate function COUNT is not supported
Это мой запрос:
select UserId = u.USER_ID,
Name = u.LNAME + ', ' + u.FNAME,
a.Month_Year,
(select count(*) from report.sub_2018 p where p.ABST = a.ABST and p.RESULT = 'P' and p.STATUS_REASON = 'Pending' and p.MONTH_YEAR = a.MONTH_YEAR) as Pass,
(select count(*) from report.sub_2018 p where p.ABST = a.ABST and p.RESULT = 'F' and p.STATUS_REASON = 'Pending' and p.MONTH_YEAR = a.MONTH_YEAR) as Fail,
(select count(*) from report.sub_2018 p where p.ABST = a.ABST and p.STATUS_REASON = 'Pending' and p.MONTH_YEAR = a.MONTH_YEAR) as Total
from report.sub_2018 a inner join pd_user_info u on a.ABST = u.USER_ID
where MONTH_YEAR like '2018-%' and u.USER_ID like 'MMN%'
group by u.LNAME, u.FNAME, a.MONTH_YEAR, a.ABST, u.USER_ID
order by u.LNAME, u.FNAME, a.MONTH_YEAR
Я не слишком уверен, как изменить порядок запроса, чтобы он работал с внешним запросом с таблицей report.sub_2018 a
Любая помощь приветствуется!