عدد شارات المستخدم مع فلتر اسم الشارة

كيف يمكنني تصفية شارة محددة؟ أحتاج إلى حساب عدد المرات التي حصلوا فيها عليها
مثال: شارة “كاتب كيفية”، أحتاج إلى معرفة من كتب المزيد من الكتيبات وإنشاء ترتيب تصاعدي

إعجاب واحد (1)

هل لديك أي تلميح بشأن هذا؟ لقد حاولت إضافة سطر
AND b.id = 136
لكنه لا يعمل

إعجاب واحد (1)

إليك نسخة معدلة قليلاً من هذا الاستعلام تضيف مرشحًا باسم badge name. يُعدّ اسم badge name افتراضيًا إلى 'all badges'. عند تعيينه إلى هذه القيمة، سيتم إرجاع نتائج جميع الأوسمة. إذا قمت بتعيين badge name إلى اسم وسمة محددة، فسيتم إرجاع النتائج لتلك الوسمة فقط.

-- [params]
-- int :posts = 1
-- int :top = 10
-- string :badge_name = all badges

SELECT
username,
COUNT(ub.id) as badge_count
FROM user_badges ub
JOIN users u ON u.id = ub.user_id
JOIN user_stats us
ON us.user_id = ub.user_id
JOIN badges b ON b.id = ub.badge_id
WHERE us.post_count > :posts
AND (u.admin = 'f' AND u.moderator = 'f')
AND CASE
        WHEN 'all badges' = :badge_name
            THEN true
        ELSE b.name = :badge_name
    END
GROUP BY u.username
ORDER BY badge_count DESC
4 إعجابات

هذا كل شيء :slight_smile: شكرًا جزيلاً لك

إعجاب واحد (1)