المواضيع التي حلها مستخدمون عاديون
(يوجد على الأرجح طريقة لدمج هذا الاستعلام مع استعلام الطاقم.)
عدد المواضيع التي حلها الطاقم خلال فترة زمنية محددة، مقسّمة حسب الفئات. يمكن تعديل مصفوفة الفئات بتغيير هذا السطر: WHERE t.category_id = ANY ('{46,25,43,40,44,35,22,7,20,17,6,12}'::int[]). يمكن تعديل الاستعلام بحيث يعيد النتائج لجميع الفئات، أو بحيث تُزوَّد مصفوفة الفئات كمعلمة نصية على الشكل {1, 2, 3}.
-- [params]
-- int :months_ago = 1
WITH query_period AS (
SELECT
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' as period_start,
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' + INTERVAL '1 month' - INTERVAL '1 second' as period_end
)
SELECT
t.category_id,
COUNT(1) AS solved_count
FROM user_actions ua
JOIN topics t
ON t.id = ua.target_topic_id
JOIN query_period qp
ON ua.created_at >= qp.period_start
AND ua.created_at <= qp.period_end
JOIN users u
ON u.id = ua.user_id
WHERE t.category_id = ANY ('{46,25,43,40,44,35,22,7,20,17,6,12}'::int[])
AND ua.action_type = 15
AND (u.admin = 'f' AND u.moderator = 'f')
GROUP BY t.category_id
ORDER BY solved_count DESC