#sql #postgresql
#sql #postgresql
Вопрос:
добрый день, у меня есть запрос о том, что я не могу отобразить столбец столбца таблицы (dpa.view_workflowjob_client) (f_name), когда я размещаю (c.f_name), не выбирайте для просмотра ошибку (отсутствует запись из предложения FROM для таблицы). см. Ниже:
select
wfjc.f_agent_name,
wfjc.f_policy_name,
wfjc.f_workflow_name,
wfjc.f_workflow_jobid,
wfjc.f_status,
wfjc.f_completion_status,
wfjc.f_completion_report,
wfjc.f_starttime,
wfjc.f_endtime,
wfjc.f_missed_clients,
wfjc.f_disabled_clients,
c.f_name
from (
select *
from dpa.view_workflowjob wfj
left join
(
select
c.f_workflowjob_id,
case when count(c.dis) > 0
then count(c.dis)
else null
end f_disabled_clients,
case when count(c.msd) > 0
then count(c.msd)
else null
end f_missed_clients
from
(
select
f_name,
f_workflowjob_id,
case when f_status = 'disabled'
then 1
else null
end dis,
case when f_status = 'missed'
then 1
else null
end msd
from dpa.view_workflowjob_client
where f_starttime <= 1606146420 AND f_endtime >= 1605023220
) c
group by c.f_workflowjob_id
) clients
on clients.f_workflowjob_id = wfj.f_id
) wfjc
where (
(wfjc.f_starttime <= 1606146420 AND wfjc.f_endtime >= 1605023220 AND ( (wfjc.f_agent_id = '8512813a-5654-4b18-99cc-0e812076e719') ))
)
Комментарии:
1. Мне кажется, вам нужно
f_name
подтянутьсяselect c.f_workflowjob_id, f_name, ...
.2. когда я ввожу ее в сообщение об ошибке » ОШИБКА: столбец «c.f_name» должен отображаться в предложении GROUP BY или использоваться в агрегатной функции СТРОКА 8: f_name, »
3. Упс, я пропустил
GROUP BY
. Простым решением было бы добавитьc.f_name
вGROUP BY
. Это сработало бы только в том случае, еслиc.f_name
бы имело отношение один к одномуc.f_workflowjob_id
, иначе ваша группировка была бы отключена. Если нет однозначного, я не уверен, как поступить, поскольку группировкаc.f_workflowjob_id
потеряетc.f_name
различия.