Penso che una versione semplice sarebbe qualcosa del genere:
SELECT
t.user_id,
CURRENT_TIMESTAMP AS granted_at,
p.id AS post_id
FROM topics t
JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
WHERE t.posts_count >= 100
AND t.archetype = 'regular'
AND t.deleted_at ISNULL
AND t.user_id > 0
L’uso di t.post_counts includerebbe attualmente anche i piccoli post di azione (chiusi, non elencati, ecc.), quindi dipende da quanto si desidera che sia veramente accurato.
Potresti renderlo più specifico contando i post “idonei” all’interno della query. Qualcosa come:
SELECT
t.user_id,
CURRENT_TIMESTAMP AS granted_at,
p.id AS post_id
FROM topics t
JOIN posts p ON p.topic_id = t.id AND p.post_number = 1
WHERE t.id IN (
SELECT
p.topic_id
FROM posts p
JOIN topics t ON t.id = p.topic_id
WHERE t.archetype = 'regular'
AND t.deleted_at IS NULL
AND p.deleted_at IS NULL
AND p.post_number <> 1
AND p.post_type = 1
AND p.hidden IS FALSE
GROUP BY 1
HAVING COUNT(*) >= 100
)
L’ho configurato ora, ma immagino che dovrebbe essere impostato per aggiornarsi quotidianamente? Vedrò domani se ha funzionato. ‘target posts’ deve essere selezionato?