Publications des utilisateurs par domaine de courrier électronique au cours des 7 derniers jours

Je pense que cela donne en fait des chiffres gonflés en raison des adhésions aux groupes (de plus, tout le monde fait partie d’un groupe automatique pour son niveau de confiance, il y a donc une légère incohérence). Je pense que nous pouvons supprimer cela et peut-être ajouter quelques ajustements pour cibler les sujets, les publications et les MP.

Laissez-moi essayer.


Peut-être quelque chose comme ceci :

-- [params]
-- string :interval = 7 days


SELECT
  split_part(ue.email, '@', 2) AS email_domain, -- Extrait la partie domaine de l'e-mail
  COUNT(p.id) AS \"Total Posts\",
  COUNT(p.id) FILTER (WHERE p.post_number = 1 AND t.archetype = 'regular') AS \"Topics\",
  COUNT(p.id) FILTER (WHERE p.post_number > 1 AND t.archetype = 'regular') AS \"Posts\",
  COUNT(p.id) FILTER (WHERE t.archetype = 'private_message') AS \"Personal Message posts\"
FROM posts p
  JOIN user_emails ue ON p.user_id = ue.user_id AND ue.primary = TRUE -- Garantit que nous utilisons l'e-mail principal
  JOIN topics t ON t.id = p.topic_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL :interval -- Filtre les publications des x derniers temps en fonction du paramètre
  AND p.user_id > 0 -- Exclut les utilisateurs système (système et bots)
  AND p.deleted_at ISNULL
  AND t.deleted_at ISNULL
  AND p.post_type <> 3
GROUP BY email_domain
ORDER BY \"Total Posts\" DESC -- Trie les résultats par le nombre de publications dans l'ordre décroissant
2 « J'aime »