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

MySQL COUNT() em várias colunas

SELECT
  COUNT(DISTINCT val_1) AS val_1_count,
  COUNT(DISTINCT val_2) AS val_2_count,
  ...
FROM ...

lhe dará as contagens para cada campo.
SELECT val_1, count(*) as val_1_count
FROM ...
GROUP BY val_1

lhe dará as contagens para um valor. Você pode usar UNION para repetir isso para val_1 a val_n em uma única consulta (desajeitada).

Se você quiser as contagens em todos os campos, você precisa
SELECT val,count(*) as valcount
FROM (
  SELECT val_1 AS val FROM ...
  UNION ALL
  SELECT val_2 AS val FROM ...
  ...
) AS baseview
GROUP BY val