【问题标题】:How to select from subquery if column contains a specific value in postgre如果列包含postgre中的特定值,如何从子查询中选择
【发布时间】:2018-08-30 03:46:30
【问题描述】:

我想问如果列包含特定值,是否可以从结果集中再次选择?

例如,从下面的查询中,我想选择它作为子查询并检查该子查询的第一列是否包含 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。这可能吗?

【问题讨论】:

    标签: postgresql subquery resultset


    【解决方案1】:
    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 2020-05-08
      • 2014-02-21
      • 2014-01-02
      相关资源
      最近更新 更多