Как выбрать из подзапроса, если столбец содержит определенное значение в Postgre - PullRequest
0 голосов
/ 30 августа 2018

Я хотел бы спросить, можно ли снова выбрать из набора результатов, если столбец содержит определенное значение?

Например, из приведенного ниже запроса я хочу выбрать его как подзапрос и проверить, содержит ли первый столбец этого подзапроса результат 2 и 3. В противном случае никакие значения не должны возвращаться.

select e.evaluator_id, ROUND(avg(cast(e.rating_score as int))::numeric,1)::varchar, c.q_category_name 
from tms.t_evaluation e    
inner join tms.m_q_category c    
on e.nendo=c.nendo    
and e.q_category_id = c.q_category_id    
and c.delete_flg = '0'
inner join tms.m_q_subcategory qs
on e.q_category_id = qs.q_category_id
and e.q_subcategory_id = qs.q_subcategory_id
and c.nendo = qs.nendo
and qs.delete_flg = '0'
where e.nendo = '2018'
and e.empl_id = 'empl05'    
and e.delete_flg = '0'
and e.evaluator_id in ('2' , '3') 
group by e.empl_id, e.nendo, e.q_category_id, 
c.q_category_name, e.evaluator_id, e.history_no

Результат содержит 2 и 3 в первом столбце. Это возможно?

1 Ответ

0 голосов
/ 30 августа 2018
select e.evaluator_id, ROUND(avg(cast(e.rating_score as int))::numeric,1)::varchar, c.q_category_name 
from tms.t_evaluation e    
inner join tms.m_q_category c    
on e.nendo=c.nendo    
and e.q_category_id = c.q_category_id    
and c.delete_flg = '0'
inner join tms.m_q_subcategory qs
on e.q_category_id = qs.q_category_id
and e.q_subcategory_id = qs.q_subcategory_id
and c.nendo = qs.nendo
and qs.delete_flg = '0'
where e.nendo = '2018'
and e.empl_id = 'empl05'    
and e.delete_flg = '0'
and e.evaluator_id in (select case when evaluator_id=2 or evaluator_id=3 then evaluator_id else null from t_evaluation order by evaluator_id asc) 
group by e.empl_id, e.nendo, e.q_category_id, 
c.q_category_name, e.evaluator_id, e.history_no
...