Trovare gli utenti 'Top X' con più badge

Qualcuno ha già scritto una query SQL per visualizzare un elenco di utenti (magari i primi 10), ordinato in base al numero totale di badge posseduti?

Ho dato un’occhiata nel Data Explorer alla tabella “user_badges” e ho notato che ci sono le colonne “user_id” e “badge_id”, ma non sono abbastanza esperto in SQL da poter eseguire una query di conteggio o di join per generare una classifica dei primi dieci.

Qualcuno ha già realizzato qualcosa di simile?

Utenti ordinati per numero di badge

Prova questo:

-- [params]
-- int :posts = 100
-- int :top = 10
SELECT u.username, count(ub.id) as "Badges"
FROM user_badges ub, users u, user_stats us
WHERE u.id = ub.user_id
AND u.id = us.user_id
AND us.post_count > :posts
AND (u.admin = 'f' AND u.moderator = 'f')
GROUP BY u.username
ORDER BY count(ub.id) desc
LIMIT :top

Ciao @SidV :wave:t2:

Funziona piuttosto bene, grazie!

Tuttavia, non è del tutto preciso…

Ecco cosa ottengo:

Eppure, passando il mouse sopra alcuni di questi utenti, vengono mostrati numeri diversi.

Memento ha 44 (non 48):

Brian ha 33 (non 35):

Mentre Paul ha effettivamente 34!

Se rimuovo la riga che esclude gli amministratori, le cose si complicano un po’:

Ping ha 52 (non 179):

Ma Ozone ha effettivamente 47:

Hai idea di cosa possa causare queste imprecisioni @SidV?

Grazie ancora per il tuo aiuto in questa faccenda :smiley:

Sì. Molti badge offrono la possibilità di essere vinti più di una volta. :thinking:

Controlla questa versione se è più accurata:

-- [params]
-- int :posts = 100
-- int :top = 10
SELECT u.username, count(ub.id) as "Badges"
FROM user_badges ub, users u, user_stats us, badges b
WHERE u.id = ub.user_id
AND u.id = us.user_id
AND b.id = ub.badge_id
AND us.post_count > :posts
AND (u.admin = 'f' AND u.moderator = 'f')
AND b.multiple_grant = 'f'
GROUP BY u.username
ORDER BY count(ub.id) desc
LIMIT :top

D’oh! :man_facepalming:t2:

Sì, certo :blush:

Tuttavia, la tua risposta aggiornata è in realtà esattamente ciò che mi serve :clap:t2:

Grazie infinite @SidV :bowing_man:

Sono felice di aiutare!

Elenco delle query aggiornato :rocket:

Buone feste di Natale! :christmas_tree: