sql >> Databasteknik >  >> RDS >> Mysql

Räkna poster i mysql-tabellen som olika kolumner beroende på olika värden i en kolumn

Du var på rätt väg, men ändra räkningen till SUM( IF( ))... något liknande

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

"IN"-testet för den andra, om den HITAR något som redan redovisats, då summerar det ett nollvärde. Om den INTE KAN hitta en av a-e-posterna, summerar den ONE för ditt antal "Annat".



  1. SQL-syntaxfel när jag kör en fråga

  2. Hur ändrar man en PG-kolumn till NULLABLE TRUE?

  3. AWS Summits 2018:Chicago Recap

  4. Bästa databasfälttyp för en URL