Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Contar registros na tabela mysql como colunas diferentes dependendo dos diferentes valores de uma coluna


Você estava no caminho certo, mas mude a contagem para SUM(IF( ))... algo como
select
      sum( if( s.job_search_text = 'a', 1, 0 ) ) as 'A',
      sum( if( s.job_search_text = 'b', 1, 0 ) ) as 'B',
      sum( if( s.job_search_text = 'c', 1, 0 ) ) as 'C',
      sum( if( s.job_search_text = 'd', 1, 0 ) ) as 'D',
      sum( if( s.job_search_text = 'e', 1, 0 ) ) as 'E',
      sum( if( s.job_search_text IN ( 'a', 'b', 'c', 'd', 'e' ), 0, 1 ) ) as 'Other'
   from 
      subscriber s

O teste "IN" para o outro, se encontrar algo já contabilizado, então está somando um valor zero. Se ele NÃO encontrar uma das entradas a-e, ele soma o ONE para sua contagem de "Outros".