Abfrage für aktuelle Stimmenzahl

Hallo, ich bin ein absoluter SQL-Neuling.

Ich möchte eine Liste erhalten, wie viele Benutzer wie viele Stimmen abgegeben haben. In unserer Instanz gibt es ein Limit von 10 Stimmen pro Person. Die resultierende Tabelle würde so aussehen:

Anzahl der Stimmen Anzahl der Benutzer
10 25
9 32
8 43
(usw.)

In meinem ersten SQL-Code überhaupt bin ich bisher gekommen:

SELECT user_id, count(user_id)
FROM discourse_voting_votes
GROUP BY user_id
ORDER BY count DESC

Dies ergibt eine Liste von Benutzern, sortiert nach der Anzahl der abgegebenen Stimmen. Zumindest damit kann ich das gewünschte Ergebnis manuell berechnen, aber es ist mühsam und fehleranfällig.

2 „Gefällt mir“

Ich fürchte, dies ist auch meine erste SQL-Abfrage, mal sehen, wie das läuft… :slightly_smiling_face: aber ist das eine Hilfe?

WITH votes AS (
    SELECT user_id, count(user_id) as Number_of_Votes
    FROM discourse_voting_votes dvv
    WHERE dvv.archive = false
    GROUP BY user_id
    ORDER BY Number_of_Votes DESC
)
SELECT Number_of_Votes, count(*) AS Number_of_Users
FROM votes
GROUP BY Number_of_Votes
ORDER BY Number_of_Votes DESC
3 „Gefällt mir“

PERFEKT! Vielen Dank! Für das Skript und die kleine SQL-Lektion. Ich hoffe, das war auch für Sie nützlich.

Ich wette, diese Abfrage wird auch für andere nützlich sein. In unserem Fall möchten wir diese Verteilung der Stimmen anzeigen, damit sich unsere Freiwilligen bewusster darüber werden, wie viel / wie wenig sie ihre Stimmen im Vergleich zu anderen Kollegen nutzen. Das ultimative Ziel ist es, die Anzahl der genutzten Stimmen zu erhöhen.

3 „Gefällt mir“

Ich freue mich sehr, dass es funktioniert hat. :+1: Ich wollte schon seit einiger Zeit mit dem Daten-Explorer üben und dies schien eine perfekte Gelegenheit zu sein, daher sollte ich Ihnen eigentlich danken. :slightly_smiling_face:

Ich habe die Zeile ‘archive = false’ hinzugefügt, um die Ergebnisse auf die aktuelle Stimmenanzahl eines Benutzers zu beschränken und keine historischen Daten einzuschließen. Ich denke, das ist für Ihren Anwendungsfall richtig, aber entfernen Sie es, wenn Sie eine ‘Gesamtsumme’ wünschen.

Nochmals vielen Dank. :+1::slightly_smiling_face:

2 „Gefällt mir“

Ah, das war mir nicht bewusst. Ja, das passt zu der Abfrage, nach der ich gesucht habe. Vielen Dank nochmals, wir nutzen diese Daten bereits.

1 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.