Sto cercando di creare un badge d’argento per 10 modifiche wiki (su tutti i post) e un badge d’oro per 100 modifiche wiki, ma né io né l’aiutante del forum stiamo ottenendo risultati.
Sto giocando con questo tipo di formato per evitare il problema MIN/MAX di assegnare la data granted_at errata quando si introduce un badge ‘nel mezzo del processo’ (tendono a funzionare meglio quando le persone non hanno già soddisfatto i criteri prima che il badge venga introdotto).
Quindi, forse qualcosa del genere:
SELECT
user_id,
created_at granted_at
FROM (
SELECT
pr.user_id,
pr.created_at,
ROW_NUMBER() OVER (PARTITION BY pr.user_id ORDER BY pr.created_at) as row_number
FROM post_revisions pr
INNER JOIN badge_posts p ON p.id = pr.post_id
WHERE p.wiki = TRUE
AND pr.hidden = FALSE
AND pr.user_id > 0
) AS revisions
WHERE row_number = 100
(Non ho incluso il solito ‘non includere argomenti o post eliminati’ poiché le modifiche ai vecchi wiki dovrebbero probabilmente essere ancora conteggiate. Non ho aggiunto nemmeno il riempimento, ma penso che questo sarebbe ‘aggiorna giornalmente’ come trigger?)
Dopo un’ulteriore riflessione (e una piccola chiacchierata con Bert ) penso che ROW_NUMBER sarebbe la scelta migliore per questo. Modificherò la query sopra.