Benutzerbeiträge nach E-Mail-Domain in den letzten 7 Tagen

Ich glaube, dass dies aufgrund der Gruppenbeitritte tatsächlich überhöhte Zahlen liefert (außerdem gehört jeder zu einer automatischen Gruppe für sein Vertrauensniveau, daher gibt es hier eine gewisse Inkonsistenz). Ich denke, wir können diese entfernen und vielleicht ein paar Anpassungen vornehmen, um Themen, Beiträge und PMs zu fokussieren.

Ich versuche es mal.


Vielleicht so etwas wie das hier:

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


SELECT
  split_part(ue.email, '@', 2) AS email_domain, -- Extrahiert den Domain-Teil der E-Mail
  COUNT(p.id) AS "Gesamtbeiträge",
  COUNT(p.id) FILTER (WHERE p.post_number = 1 AND t.archetype = 'regular') AS "Themen",
  COUNT(p.id) FILTER (WHERE p.post_number > 1 AND t.archetype = 'regular') AS "Beiträge",
  COUNT(p.id) FILTER (WHERE t.archetype = 'private_message') AS "Persönliche Nachrichtenbeiträge"
FROM posts p
  JOIN user_emails ue ON p.user_id = ue.user_id AND ue.primary = TRUE -- Stellt sicher, dass die primäre E-Mail verwendet wird
  JOIN topics t ON t.id = p.topic_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL :interval -- Filtert Beiträge aus den letzten x Zeit basierend auf dem Parameter
  AND p.user_id > 0 -- Schließt Systembenutzer (System und Bots) aus
  AND p.deleted_at ISNULL
  AND t.deleted_at ISNULL
  AND p.post_type <> 3
GROUP BY email_domain
ORDER BY "Gesamtbeiträge" DESC -- Sortiert die Ergebnisse nach der Anzahl der Beiträge absteigend
2 „Gefällt mir“