meine einfache Tabelle auf diese Weise formatiert ist (4 Felder) und mehr als 100 Zeilen:Mysql Abfrage auf Ergebnisse Spiel funktioniert nicht
id Ergebnis ID_USER Daten
1 0 11 2016-10-15 18: 00:00
2 0 13 2016-10-15 18:00:00
3 0 16 2016-10-15 18:00:00
4 0 24 2016-10-15 18:00:00
5 0 6 2016 -10-15 18:00:00
6 3 5 2016-10-15 18:00:00
7 3 45 2016-10-15 18:00:00
8 3 66 2016-10-15 18:00: 00
9 3 4 2016-10-15 18:00:00
10 3 33 2016-10-8 17:00:00
11 1 55 2016-10-8 17:00:00
12 1 101 2016-10-8 17:00:00
....
I 10 Datensatz mit dieser Logik jede Woche sparen: Wenn ein Team gewinnt, spare ich 3 Punkte für jedes Teammitglied und 0 Punkte für jedes Mitglied der Teamlooser. (Wenn sie zeichnen, speichere ich 1 Punkt für alle 10 Mitglieder) und so weiter.
Jetzt ist meine Frage, wie man die ersten 3 Spieler, die in dieser Tabelle gespeichert wurden, die mindestens 5 Spiele und in den letzten 5 Spielen die Hauptpunkte hatte, extrahiert hat.
formatierte ich meine Abfrage auf diese Weise:
(SELECT m1.id_user, m1.data, SUM(result) AS ris
FROM my_table m1
JOIN(SELECT id_user
FROM my_table
GROUP BY id_user
HAVING COUNT(id_user) >= 5) m2
ON m2.id_user = m1.id_user
GROUP BY id_user
ORDER BY m1.data DESC)
ORDER BY ris DESC LIMIT 3;
Aber diese Abfrage tha Menge von Punkten in allen Spielen gespielt und nicht nur in den letzten 5 Spielen betrachten! Wie kann diese Bedingung in meine Abfrage eingefügt werden, wenn es möglich ist?
Danke für Hilfe.
Hi @ysth es funktioniert perfekt! Aber ehrlich gesagt habe ich die Logik nicht verstanden, mit der Sie diese Abfrage formatiert haben. Ich hoffe, Sie können Schritt für Schritt auf andere Weise erklären. Danke vielmals! –
Ja @ysth, jetzt ist es sehr klar! Vielen Dank für Ihre Unterstützung und Erklärung! –