yo,
SELECT COUNT(DISTINCT gruppen_id) +
jede Gruppe einmal, aber nicht die Gruppe NULL
genau, agregat-funktionen zählen keine NULL Werte.
COUNT(DISTINCT IF(gruppen_id IS NULL, besucher_id, NULL))
wandelt die Gruppe NULL in einen anderen, immer unterschiedlichen Wert (z.B. besucher_id), macht alle anderen Gruppen zu NULL, die damit nicht gezählt werden.
einfacher gesagt, wenn die gruppenspalte einen NULL wert hat, dann zähle die besucherspalte.
Ilja