Mysql
 sql >> Base de données >  >> RDS >> Mysql

Compter les enregistrements dans la table mysql comme différentes colonnes en fonction des différentes valeurs d'une colonne

Vous étiez sur la bonne voie, mais changez le compte en SUM( IF( ))... quelque chose comme

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

Le test "IN" pour l'autre, s'il TROUVE quelque chose déjà pris en compte, alors il additionne une valeur nulle. S'il NE PEUT PAS trouver l'une des entrées a-e, il additionne le ONE pour vous "Autre".