Nous utilisons les catégories pour rester informés de certains sujets et nous encourageons nos utilisateurs à s’abonner ou à suivre une catégorie afin de recevoir les informations par e-mail rapidement.
Nous souhaitons mesurer le succès de cette initiative, mais nous ne parvenons pas à trouver un moyen de voir combien d’utilisateurs suivent une catégorie.
Est-ce possible ? Même si les données sont dans la base de données et que nous pouvons les extraire, cela serait idéal.
SELECT c.id as ID,
c.name as NAME,
cu.notification_level as NOTIFICATION_LEVEL,
CASE cu.notification_level
WHEN 0 THEN 'MUTED'
WHEN 1 THEN 'REGULAR'
WHEN 2 THEN 'TRACKING'
WHEN 3 THEN 'WATCHING'
WHEN 4 THEN 'WATHING FIRST POST' END as NOTIFICATION_LEVEL_DESC,
COUNT(cu.id) as COUNT_OF_TYPE
FROM category_users cu
JOIN categories c ON cu.category_id = c.id
GROUP BY c.id, c.name, cu.notification_level, notification_level_desc
ORDER BY c.name, cu.notification_level
Merci @merefield, cela m’a apporté 90 % de ce dont j’avais besoin et j’ai pu adapter votre requête SQL à mes besoins comme suit :
SELECT c.name as NAME,
COUNT(cu.id) as subscribers
FROM category_users cu
JOIN categories c ON cu.category_id = c.id
WHERE
c.name LIKE '%Annonces%'
AND
(cu.notification_level = 2
OR
cu.notification_level = 3
OR
cu.notification_level = 4)
GROUP BY c.id, c.name
ORDER BY subscribers DESC, c.name