مجتمعنا يركز على المواضيع المثبتة والمثبتة عالميًا. للأسف، لا يوجد عداد للإحصائيات لهذا الغرض في صفحات ملفات المستخدمين على الإطلاق، ويبدو أن المواضيع المثبتة أو المثبتة عالميًا لا تُخزَّن بطريقة منهجية في أي مكان في قاعدة البيانات.
في ضوء ذلك، أبحث عن طريقة لمنحشارات على الأقل مثل: أول موضوع مثبت، 10 مواضيع مثبتة، 100 موضوع مثبت، بالإضافة إلى المواضيع المثبتة عالميًا.
هل يمكن لأي شخص مساعدتي في كتابة استعلام SQL للشارات من هذا النوع؟
نقطة البداية لدي هي:
SELECT p.user_id, min(p.created_at) granted_at, MIN(p.id) post_id
FROM badge_posts p
JOIN topics t ON t.id = p.topic_id
WHERE t.unpinned IS NOT NULL
GROUP BY p.user_id
HAVING count(*) > 5
ولكن هذا يعطيني الخطأ:
ERROR: column t.unpinned does not exist
LINE 6: WHERE t.unpinned IS NOT NULL
أعتقد أنني مضطر للتعامل مع حقل unpinned لأنه لا توجد نقطة بيانات أخرى مرتبطة بالمواضيع التي تم تثبيتها سابقًا، حسب علمي. أم هل يمكنني استخدام post_actions هنا؟
أو ربما البحث عن أول منشور في موضوع من قبل مستخدم من الطاقم أو النظام يحتوي على “pinned … ago” للعد بناءً عليه؟ action_code => pinned.disabled
تحديث: يبدو أن هذا يعمل بطريقة ما…
SELECT t.user_id, current_timestamp granted_at
FROM badge_posts p
INNER JOIN topics t on t.id = p.topic_id
WHERE p.action_code ilike 'pinned.disabled'
GROUP BY t.user_id
HAVING count(*) > 0
لكنني لست متأكدًا مما إذا كان هذا هو أفضل نهج، وبما أن المنشور يمكن تثبيته وإلغاء تثبيته عدة مرات… لا أعرف ما إذا كان هذا الاستعلام يلتقط فقط حالة pinned.disabled واحدة لكل topic.id.
سيكون من المقدر جدًا الحصول على مساعدة من خبير في استعلامات SQL للشارات.
أو حتى النظر في تخزين التثبيتات بشكل منهجي في قاعدة البيانات مثل “الإعجابات” وما إلى ذلك في المستقبل، وعرضها في قسم الإحصائيات في ملف المستخدم وتحت روابط مثل “تم تثبيت موضوعك”. لأنه إذا تم تثبيت موضوع، فهذا يعتبر تقديرًا أعلى بكثير مقارنة بالإعجابات، ويجب أن يُؤخذ في الاعتبار.
