قائمة المستخدمين حسب عدد المواضيع/الخيوط التي حلوها

قائمة المستخدمين حسب عدد المواضيع/المنشورات التي حلّوها

غيّر within_number_of_months إلى عدد الأشهر التي ترغب في استعلامها.
لذا فإن القيمة 3 ستُظهر نتائج الأشهر الثلاثة الماضية، وهكذا.

-- [params]
-- int :within_number_of_months = 1

WITH query_period AS (
SELECT
    date_trunc('month', CURRENT_DATE) - INTERVAL ':within_number_of_months months' AS period_start,
    date_trunc('month', CURRENT_DATE) AS period_end
)

SELECT
    ua.user_id,
    COUNT(1) AS solved_count
FROM user_actions ua
INNER JOIN query_period qp
    ON ua.created_at >= qp.period_start
    AND ua.created_at <= qp.period_end
INNER JOIN users u
    ON u.id = ua.user_id
WHERE ua.action_type = 15
-- AND u.admin = 'f'
-- AND u.moderator = 'f'
GROUP BY ua.user_id
ORDER BY solved_count DESC
6 إعجابات