Estamos usando categorias como uma forma de nos manter atualizados sobre certos tópicos e estamos incentivando nossos usuários a se inscreverem/seguirem a categoria para que recebam as informações por e-mail rapidamente.
Queremos medir o sucesso dessa iniciativa, mas não conseguimos encontrar uma maneira de ver quantos usuários estão acompanhando uma categoria.
Isso é possível? Mesmo que os dados estejam no banco de dados e possamos extraí-los, seria ótimo.
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
Obrigado @merefield, isso me forneceu 90% do que eu precisava e consegui adaptar sua instrução SQL às minhas necessidades da seguinte forma:
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 '%Announcements%'
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