Ich habe eine relativ einfache Frage, aber ich bin dran mit dem Schreiben einer richtigen SQL-Abfrage, um die Ergebnisse anzuzeigen, die ich brauche. Ich habe eine Tabelle, die Ergebnisse von Übereinstimmungen mit Spalten speichert, die die IDs der Spieler angeben, die an der Übereinstimmung teilgenommen haben, den Gewinner und eine andere boolesche Spalte, die sagen lässt, ob ich diese Übereinstimmung in das Ergebnis aufnehmen möchte oder nicht. So sind die Säulen sind:Wie zähle ich Zeilen in MySQL mit einer IF-Anweisung?
player1_id | player2_id | winner_id | use
So winner_id
ist der Wert von einem der ersten beiden Spalten in Abhängigkeit von dem Spieler gewonnen. Wenn ich zählen mag, wie oft ein bestimmte Spieler ein Spiel gewonnen nur die Zeilen mit denen die use
Fahne ist, kann ich leicht tun mit:
SELECT COUNT(*) AS total, winner_id
FROM table
WHERE use = 1
GROUP BY winner_id
ORDER BY total DESC
Allerdings habe ich auch die gleiche Zählung tun wollen, aber für die Spieler, die ihre Spiele verloren haben. Mit anderen Worten möchte ich nicht durch die winner_id
gruppieren, sondern durch die Verlierer-ID, die der Wert von player1_id
oder player2_id
je nachdem, welche von ihnen von der winner_id
ist. Irgendwelche Hinweise, wie man das mit einer einfachen Abfrage macht, die funktioniert?
Bearbeiten Sie Ihre Frage und Beispieldaten und die gewünschten Ergebnisse liefern. –
Schreckliches Tischdesign - 1. Col.-Sieger, 2. Col-Gegner. – user3741598
Nicht argumentieren, dass es ein gutes Tischdesign ist, aber einige Matches werden zwischen zwei Spielern gesetzt, ohne im Voraus zu wissen, wer gewinnen wird. – mmvsbg