SELECT c.id as ID,
c.name as NAME,
cu.notification_level as NOTIFICATION_LEVEL,
CASE cu.notification_level
WHEN 0 THEN 'مُخْتَمِت'
WHEN 1 THEN 'عادي'
WHEN 2 THEN 'تتبع'
WHEN 3 THEN 'مراقبة'
WHEN 4 THEN 'مراقبة أول منشور' 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
شكرًا لك @merefield، لقد حصلت على 90% مما كنت أحتاجه، وتمكنت من تعديل جملة SQL الخاصة بك لتناسب احتياجاتي على النحو التالي:
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