sql >> Base de Datos >  >> RDS >> Mysql

Cuente los registros en la tabla mysql como columnas diferentes según los diferentes valores de una columna

Estabas en el camino correcto, pero cambia el conteo a 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

La prueba "IN" para el otro, si ENCUENTRA algo ya contabilizado, entonces está sumando un valor cero. Si NO PUEDE encontrar una de las entradas a-e, suma la UNO para su conteo "Otro".