Stiamo utilizzando le categorie per rimanere aggiornati su determinati argomenti e stiamo incoraggiando i nostri utenti a iscriversi/seguire le categorie in modo da ricevere le informazioni via email il più rapidamente possibile.
Vogliamo misurare il successo di questa iniziativa, ma non riusciamo a trovare un modo per vedere quanti utenti stanno seguendo una categoria.
È possibile? Anche se i dati fossero presenti nel database, sarebbe ottimo poterli estrarre.
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
Grazie @merefield, questo mi ha fornito il 90% di ciò di cui avevo bisogno e sono riuscito ad adattare la tua istruzione SQL alle mie esigenze come segue:
SELECT c.name as NOME,
COUNT(cu.id) as abbonati
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 abbonati DESC, c.name