This may be an improvement for the query ![]()
WITH LikeActionTypes AS (
SELECT id
FROM post_action_types
WHERE name_key = 'like'
),
DiscourseGroup AS (
SELECT id
FROM groups
WHERE name ILIKE 'discourse'
),
BugCategory AS (
SELECT id
FROM categories
WHERE name ILIKE 'bug'
)
SELECT
p.user_id,
MIN(p.created_at) AS granted_at,
MIN(p.id) AS post_id
FROM badge_posts AS p
LEFT JOIN topics AS t ON t.id = p.topic_id
LEFT JOIN post_actions AS pa ON pa.post_id = p.id
LEFT JOIN LikeActionTypes AS lat ON pa.post_action_type_id = lat.id
LEFT JOIN group_users AS gu ON pa.user_id = gu.user_id
LEFT JOIN DiscourseGroup AS dg ON gu.group_id = dg.id
LEFT JOIN BugCategory AS bc ON t.category_id = bc.id
WHERE p.post_number = 1
GROUP BY p.user_id;