count multiple columns in one query

前端 未结 3 1410
既然无缘
既然无缘 2021-01-27 06:33

Guys i have four queries:

Query #1:

select 
satisfaction_score,count(satisfaction_score) as Satisfaction_count
from j_survey_response
where satisfaction_         


        
3条回答
  •  长情又很酷
    2021-01-27 07:08

    You can UNION ALL the separate queries and apply conditional aggregation on the resulting set:

    select score,
           max(case when type = 'satisfaction' then count end) as satisfaction_count,
           max(case when type = 'response' then count end) as response_count,
           max(case when type = 'responder' then count end) as responder_count,
           max(case when type = 'service' then count end) as service_count             
    from (
      select satisfaction_score as score, 
             count(satisfaction_score) as count, 
             'satisfaction' as type
      from j_survey_response
      where satisfaction_score != 0
      group by satisfaction_score
    
      union all
    
      select response_score,
             count(response_score) as count, 'response' as type
      from j_survey_response
      where response_score != 0
      group by response_score
    
      union all
    
      select responder_score,
             count(responder_score) as count, 'responder' as type
      from j_survey_response
      where responder_score != 0
      group by responder_score
    
      union all
    
      select service_score,
             count(service_score) as count, 'service' as type
      from j_survey_response
      where service_score != 0
      group by service_score) as t
    group by score
    

提交回复
热议问题