Estamos utilizando las categorías como una forma de mantenernos actualizados sobre ciertos temas y estamos animando a nuestros usuarios a suscribirse/seguir la categoría para que reciban la información por correo electrónico de forma rápida.
Queremos medir el éxito de esta iniciativa, pero no logramos encontrar una manera de ver cuántos usuarios están siguiendo una categoría.
¿Es esto posible? Incluso si los datos están en la base de datos, sería genial poder extraerlos.
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
Gracias @merefield, eso me dio el 90% de lo que necesitaba y pude adaptar tu consulta SQL a mis necesidades de la siguiente manera:
SELECT c.name as NAME,
COUNT(cu.id) as suscriptores
FROM category_users cu
JOIN categories c ON cu.category_id = c.id
WHERE
c.name LIKE '%Announcements%'
AND
(cu.notification_level = 2
OR
cu.notification_level = 3
OR
cu.notification_level = 4)
GROUP BY c.id, c.name
ORDER BY suscriptores DESC, c.name