Запрос для создания групп на основе активности

В таком случае, я думаю, что что-то вроде этого могло бы обеспечить возможность ручного поиска:

-- [params]
-- int :likes_received
-- int :posts_read


WITH user_activity AS (

    SELECT 
        p.user_id, 
        COUNT(p.id) as posts_count
    FROM posts p
    LEFT JOIN topics t ON t.id = p.topic_id
    WHERE p.created_at::date >= CURRENT_DATE - INTERVAL '1 YEAR'
        AND t.deleted_at IS NULL
        AND p.deleted_at IS NULL
        AND t.archetype = 'regular'
    GROUP BY 1
)

SELECT 
    us.user_id,
    us.likes_received,
    us.posts_read_count,
    ua.posts_count
FROM user_stats us
  JOIN user_activity ua ON UA.user_id = us.user_id
WHERE us.likes_received >= :likes_received
  AND us.posts_read_count >= :posts_read
  AND ua.posts_count >= 10
ORDER BY 2 DESC, 3 DESC, 4 DESC

А если немного изменить этот запрос или упростить его, оставив только имена пользователей, то получится список, который можно скопировать и вставить в поле «Добавить пользователей» на странице группы (или групп), если экспортировать результаты в CSV-файл (и открыть его, например, в Блокноте):

-- [params]
-- int :likes_received
-- int :posts_read


WITH user_activity AS (

    SELECT 
        p.user_id, 
        COUNT(p.id) as posts_count
    FROM posts p
    LEFT JOIN topics t ON t.id = p.topic_id
    WHERE p.created_at::date >= CURRENT_DATE - INTERVAL '1 YEAR'
        AND t.deleted_at IS NULL
        AND p.deleted_at IS NULL
        AND t.archetype = 'regular'
    GROUP BY 1
)

SELECT 
    u.username
FROM user_stats us
  JOIN user_activity ua ON UA.user_id = us.user_id
  JOIN users u ON u.id = us.user_id
WHERE us.likes_received >= :likes_received
  AND us.posts_read_count >= :posts_read
  AND ua.posts_count >= 10
ORDER BY 1

Это тоже возможно. :partying_face: Вам понадобится один значок (и один запрос для значка) для каждой группы, а также соответствующая автоматизация с использованием скрипта «Членство в группе пользователей через значок». Вы также можете автоматизировать выдачу значков, включив функцию «Пользовательские триггерные значки» (Enable Badge SQL и Creating triggered custom badge queries), вместо того чтобы выдавать их вручную.

Однако здесь задействовано множество компонентов, поэтому, возможно, на данном этапе лучше сохранить всё максимально простым.