مرحباً @tpsReports،
ليس لدي مثيل قوي من Discourse متاح حيث يمكنني اختبار هذا بشكل شامل، ولكن أعتقد أن استعلام مستكشف البيانات هذا قد يوجهك في الاتجاه الصحيح. (ربما يمكن لشخص آخر المساعدة في تنقيحه!)
SELECT count(*)
FROM post_actions AS pac
JOIN posts p on p.id = pac.post_id
JOIN topics t on t.id = p.topic_id
WHERE pac.post_action_type_id in ('3','4','7','8')
AND pac.created_at >= NOW() - INTERVAL '20 MINUTE'
AND t.category_id = '4'
في هذا المثال، حددت الوقت منذ إنشاء العلامة بـ 20 دقيقة (السطر 6)، وهو ما قدمته في مثالك.
في السطر السابع، استخدمت معرف الفئة 4، ولكن ستحتاج إلى استخدام معرف الفئة المحدد للفئة التي تريد تتبعها.
إذا كنت ترغب في الإشارة إلى الفئة بالاسم، يمكنك إضافة ربط آخر إلى الاستعلام، ليبدو كالتالي:
SELECT count(*)
FROM post_actions AS pac
JOIN posts p on p.id = pac.post_id
JOIN topics t on t.id = p.topic_id
JOIN categories c on c.id = t.category_id
WHERE pac.post_action_type_id in ('3','4','7','8')
AND pac.created_at >= NOW() - INTERVAL '20 MINUTE'
AND c.name = 'General'
ثم استبدل حيث استخدمت General في السطر 8 باسم الفئة الخاصة بك. ضع في اعتبارك أن أسماء الفئات حساسة لحالة الأحرف.
يرجى إعلامي إذا كان ذلك مفيدًا!