Hast du einen Rat, wie ich bestimmte Gruppen aus dieser Abfrage entfernen kann?
SELECT
sum(p.score) / count(p) as "durchschnittliche Punktzahl pro Beitrag",
count(p.id) as post_count,
p.user_id
FROM posts p
JOIN users u ON u.id = p.user_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL '3 month'
AND u.active
GROUP BY user_id, u.views
HAVING count(p.id) > 40
ORDER BY sum(p.score) / count(p) DESC
LIMIT 100
-- [params]
-- int_list :exclude_groups = 12, 2, 3
SELECT
sum(p.score) / count(p) as "durchschnittliche Punktzahl pro Beitrag",
count(p.id) as anzahl_beitraege,
p.user_id
FROM posts p
JOIN users u ON u.id = p.user_id
LEFT JOIN group_users gu on u.id = gu.user_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL '3 month'
AND u.active
AND (gu.group_id not IN (:exclude_groups))
GROUP by p.user_id, u.views
HAVING count(p.id) > 40
ORDER BY sum(p.score) / count(p) DESC
LIMIT 100
Vielen Dank, @pfaffman. Das ist sehr nett von Ihnen.
Ich habe das Skript ausgeführt und stelle fest, dass Mitglieder der ausgeschlossenen Gruppen in den Ergebnissen erscheinen. Natürlich sind sie Mitglieder vieler Gruppen. Gibt es eine Möglichkeit, dass dieses Skript alle Mitglieder aller Gruppen in der :exclude_groups-Liste absolut ausschließt?
Ah, richtig. not in hat nicht so funktioniert, wie ich zuerst dachte. Es bewirkt meistens nichts. Ich denke, was passieren muss, ist zuerst eine Abfrage, die Benutzer ohne Gruppen ermittelt, und dann eine Verknüpfung davon mit dem anderen Teil der Abfrage.
-- [Parameter]
-- int_list :exclude_groups = 1,2
SELECT
sum(p.score) / count(p) as "durchschnittliche Punktzahl pro Beitrag",
count(p.id) as anzahl_beitraege,
p.user_id
FROM posts p
JOIN users u ON u.id = p.user_id
WHERE p.created_at >= CURRENT_DATE - INTERVAL '3 month'
AND u.active
AND u.id NOT IN(
SELECT user_id FROM group_users WHERE group_id IN (:exclude_groups)
)
GROUP BY user_id, u.views
HAVING count(p.id) > 40
ORDER BY sum(p.score) / count(p) DESC
LIMIT 100
Dein Beitrag zum Discourse-Ökosystem und deine großartige Unterstützung als Kunde werden sehr geschätzt. Ich freue mich riesig, dass du einen so unglaublichen Hosting-Service anbietest!