ユーザーバッジのカウントとバッジ名のフィルター

特定のバッジで絞り込むにはどうすればよいですか?そのバッジを獲得した回数を数える必要があります。
例:「Howto Writer バッジ」の場合、誰が最も多くの Howto を書いたかを知り、ランキングを作成したいです。

何かヒントはありますか?次の行を追加してみましたが、機能しません。

AND b.id = 136

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

それだけです :slight_smile: ありがとうございます