Encontrar los usuarios 'Top X' con más insignias

¿Alguien ha creado alguna consulta SQL para mostrar una lista de usuarios (quizás los 10 primeros), ordenada por el número total de insignias que tienen?

He revisado un poco el Explorador de Datos y he examinado la tabla “user_badges”; puedo ver que hay una columna “user_id” y una columna “badge_id”, pero no tengo suficiente experiencia en SQL para ejecutar algún tipo de consulta de conteo o unión que produzca una lista de los diez primeros.

¿Alguien ya ha hecho algo así?

Usuarios ordenados por número de insignias

Prueba esto:

-- [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
6 Me gusta

Hola @SidV :wave:t2:

Esto funciona bastante bien, ¡gracias!

Sin embargo, no es del todo preciso…

Esto es lo que obtengo:

Pero al pasar el cursor sobre algunos de esos usuarios, aparecen números diferentes.

Memento tiene 44 (no 48):

Brian tiene 33 (no 35):

Pero Paul realmente tiene 34.

Si elimino la línea que excluye a los administradores, se descontrola un poco:

Ping tiene 52 (no 179):

Pero Ozone efectivamente tiene 47:

¿Tienes alguna idea de qué podría estar causando estas imprecisiones @SidV?

Gracias una vez más por tu ayuda en este tema :smiley:

Sí. Muchas insignias tienen la opción de ganarlas más de una vez. :thinking:

Verifica esto si es más preciso:

-- [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
4 Me gusta

¡D’oh! :man_facepalming:t2:

Sí, por supuesto :blush:

Sin embargo, tu respuesta actualizada es exactamente lo que necesito :clap:t2:

Muchísimas gracias @SidV :bowing_man:

1 me gusta

¡Me alegra ayudar!

Lista de consultas actualizada :rocket:

¡Que tengas unas felices fiestas! :christmas_tree:

8 Me gusta