EXPLAIN SELECT
ROUND(SUM(CASE WHEN nb_adults_and_children = 1 THEN 1 ELSE 0 END)/COUNT(user_id),2)*100 AS 'individual',
ROUND(SUM(CASE WHEN nb_adults_and_children BETWEEN 2 AND 3 THEN 1 ELSE 0 END)/COUNT(user_id),2)*100 AS 'between2To3Pers',
ROUND(SUM(CASE WHEN nb_adults_and_children BETWEEN 4 AND 5 THEN 1 ELSE 0 END)/COUNT(user_id),2)*100 AS 'between4To5Pers',
ROUND(SUM(CASE WHEN nb_adults_and_children >= 6 THEN 1 ELSE 0 END)/COUNT(user_id),2)*100 AS 'plus6ToPers',
COUNT(user_id) AS nb_families
FROM (
SELECT
u.user_id,
SUM(u.family_size) AS nb_adults_and_children
FROM
subscriptions s
INNER JOIN `users` u ON (u.user_id = s.user_id AND u.charitable_account = 1)
WHERE
s.active = 1
GROUP BY u.user_id) tmp