Mysql
 sql >> Baza danych >  >> RDS >> Mysql

policz wiele kolumn w jednym zapytaniu

Możesz UNION ALL oddzielne zapytania i zastosuj warunkowe agregacja na zbiorze wynikowym:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kodowanie Pythona mysql :(

  2. Wyniki pętli PDO PHP

  3. Ostrzeżenie:mysqli_connect():(HY000/2002):Brak takiego pliku lub katalogu

  4. Jak wstawić datę i godzinę z dokładnością do mikrosekundy w mysql?

  5. Odległość przestrzenna Mysql za pomocą POINT - Nie działa