sql >> Database >  >> RDS >> Mysql

MySQL COUNT() over meerdere kolommen

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

geeft u de tellingen voor elk veld.

SELECT val_1, count(*) as val_1_count
FROM ...
GROUP BY val_1

geeft u de tellingen voor een waarde. U kunt UNION gebruiken om dit te herhalen voor val_1 tot val_n in een enkele (onhandige) zoekopdracht.

Als u de tellingen over alle velden wilt, moet u

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



  1. Verschillen tussen database en schema met verschillende databases?

  2. SQL meerdere kolommen in IN-clausule

  3. hoe de waarde van het selectievakje op te slaan in de mysql-database met behulp van php

  4. InnoDB dwingen buitenlandse sleutels op een tafel/tabellen opnieuw te controleren?