Von Mitarbeitern gelöste Themen (listet Themen auf)

Von Mitarbeitern gelöste Themen (Listet Themen auf)

Gibt die von Mitarbeitern gelösten Themen über einen angegebenen Monatszeitraum zurück, sortiert nach solution_date. Die Abfrage akzeptiert einen Parameter months_ago, der standardmäßig auf 0 gesetzt ist, um die Ergebnisse für den aktuellen Monat zu liefern.

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

WITH query_period AS (
SELECT
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' as period_start,
date_trunc('month', CURRENT_DATE) - INTERVAL ':months_ago months' + INTERVAL '1 month' - INTERVAL '1 second' as period_end
)

SELECT
ua.target_topic_id,
ua.target_post_id
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 = 't' OR u.moderator = 't')
ORDER BY ua.created_at DESC