Requête pour créer des groupes basés sur l'activité

Dans ce cas, je pense que quelque chose comme ceci pourrait fournir la recherche manuelle :

-- [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

Et en le modifiant/simplifiant pour obtenir uniquement les noms d’utilisateur, cela fournirait une liste que vous pourriez copier-coller dans la boîte “Ajouter des utilisateurs” sur la page du ou des groupes si vous exportiez les résultats en csv (et l’ouvriez dans un programme comme notepad, par exemple) :

-- [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

C’est aussi possible. :partying_face: Vous auriez besoin d’un badge (et d’une requête de badge) pour chaque groupe, et d’une automatisation associée utilisant le script “User Group Membership through Badge”. Vous pourriez également automatiser les badges plutôt que de les attribuer manuellement en activant les Badges Déclenchés Personnalisés (Enable Badge SQL et Creating triggered custom badge queries)

Il y a beaucoup d’éléments en jeu, donc vous voudrez peut-être rester simple à ce stade.

2 « J'aime »