„Top X“-Nutzer mit den meisten Abzeichen finden

Hat jemand bereits eine SQL-Abfrage erstellt, um eine Liste von Benutzern (vielleicht die Top 10) anzuzeigen, sortiert nach der Gesamtzahl ihrer Badges?

Ich habe mich im Data Explorer umgesehen und die Tabelle „user_badges" betrachtet. Dort gibt es zwar die Spalten „user_id" und „badge_id", aber ich bin im SQL nicht so versiert, dass ich eine Zähl- oder Join-Abfrage erstellen könnte, um eine Top-10-Liste zu erzeugen.

Hat das schon jemand gemacht?

Benutzer sortiert nach Anzahl der Abzeichen

Teste dies:

-- [params]
-- int :posts = 100
-- int :top = 10
SELECT u.username, count(ub.id) as "Abzeichen"
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 „Gefällt mir“

Hi @SidV :wave:t2:

Das funktioniert ziemlich gut, danke!

Allerdings ist es nicht ganz genau…

Hier ist, was ich erhalte:

Beim Überfahren einiger dieser Benutzer mit der Maus werden jedoch andere Zahlen angezeigt.

Memento hat 44 (nicht 48):

Brian hat 33 (nicht 35):

Paul hat tatsächlich 34!

Wenn ich die Zeile entferne, die Administratoren ausschließt, gerät es etwas außer Kontrolle:

Ping hat 52 (nicht 179):

Ozone hat jedoch tatsächlich 47:

Hast du eine Idee, was diese Ungenauigkeiten verursachen könnte, @SidV?

Nochmals vielen Dank für deine Hilfe dabei :smiley:

Ja. Viele Abzeichen können mehr als einmal gewonnen werden. :thinking:

Schau dir das hier an, falls es genauer ist:

-- [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 „Gefällt mir“

D’oh! :man_facepalming:t2:

Ja, natürlich :blush:

Deine aktualisierte Antwort ist jedoch genau das, was ich brauche :clap:t2:

Vielen, vielen Dank @SidV :bowing_man:

1 „Gefällt mir“

Gerne geschehen!

Liste der Abfragen aktualisiert :rocket:

Schöne Weihnachten! :christmas_tree:

8 „Gefällt mir“