Eine Zusammenfassung und Gruppierung von Daten
Abfrageanweisung ---> Aggregationsfunktion - -- -> Einzelzeilendatensatz
1. Häufig verwendete Aggregatfunktionen:
sum() Zahlen Zahlen Summieren Sie alle Nicht-Null-Werte in der angegebenen Spalte
avg() Zahlen Alle Nicht-Null-Werte in der angegebenen Spalte mitteln
min() Zahlen, Zeichen, Datum/Uhrzeit Gibt die kleinste Zahl, das früheste Datum oder die kleinste Zeichenfolge in der angegebenen Spalte zurück
max() Zahlen, Zeichen, Datum/Uhrzeit Gibt die größte Zahl in der angegebenen Spalte, das neueste Datum oder den größten Zeichensatz zurück
count() Jeder zeilenbasierte Datentyp Zählt die Anzahl aller Datensatzzeilen im Ergebnis set
Beispiel: Informationen darüber abfragen, wie viele Spieler sich in der Spielertabelle befinden
Anzahl (user_qq) aus Benutzern auswählen
Anzahl auswählen(* ) von Benutzern
Beispiel: Fragen Sie die Gesamtpunktzahl des Spielers ab, dessen QQ-Nummer 12301 ist
Wählen Sie sum(score) als „Gesamtpunktzahl“ aus den Punktzahlen aus, bei denen user_qq='12301'
istBeispiel: Fragen Sie ab, ob die QQ-Nummer 12302 ist. Spielerbewertungsergebnisse.
Wählen Sie avg(score) als „durchschnittliche Punktzahl“ aus den Ergebnissen aus, bei denen user_qq='12302' ist.
Beispiel: Fragen Sie die höchste Punktzahl ab von Spiel Nummer 1
wählen Sie „max(score)“ als „maximale Punktzahl“ aus „score“ mit gno=1
Beispiel: Fragen Sie die Gesamtpunktzahl, die durchschnittliche Punktzahl und die maximale Punktzahl des Spielers ab, dessen QQ-Nummer ist 12302
wählen Sie sum(score) als „Gesamtpunktzahl“, avg(score) als „durchschnittliche Punktzahl“, max(score) als „höchste Punktzahl“ aus den Punktzahlen, wobei user_qq ='12302'
2. Verwenden Sie die Gruppe „GRUPPE NACH“
Beispiel: Fragen Sie die Gesamtpunktzahl, die Durchschnittspunktzahl und die höchste Punktzahl jedes Spielers ab
Wählen Sie die Summe (Punktzahl) als „Gesamtpunktzahl“ aus ', avg(score) als „durchschnittliche Punktzahl“, max(score) als „höchste Punktzahl“ aus der Punktegruppe nach user_qq
Beispiel: Fragen Sie die durchschnittliche Punktzahl jedes Spielers ab und zeigen Sie die QQ-Nummer und den Durchschnitt des Spielers an Punktzahl
wählen Sie user_qq, avg( Score) als „Durchschnittspunktzahl“ aus der Scores-Gruppe nach user_qq
3. Filtern Sie die Gruppenergebnisse
Bei Verwendung von Mit der GROUP BY-Klausel können Sie die HAVING-Klausel für Gruppenstatistiken verwenden. Legen Sie außerdem die statistischen Bedingungen fest. Die Beziehung zwischen der HAVING-Klausel und der GROUP BY-Klausel entspricht der Beziehung zwischen der WHERE-Klausel und der SELECT-Klausel
Die Der Unterschied zur WHERE-Klausel besteht darin, dass in der HAVING-Klausel aggregiert wird. Die statistischen Ergebnisse der Funktion sind Filterbedingungen.
Beispiel: Fragen Sie die QQ-Nummer, die Gesamtpunktzahl und die durchschnittliche Punktzahl von Spielern ab, deren durchschnittliche Punktzahl mehr als 4000 beträgt.
wählen Sie user_qq, sum(score) als „Gesamtpunktzahl“, avg(score) als 'Durchschnittspunktzahl' ' aus der Punktegruppe von user_qq mit avg(score) > 4000
Beispiel: Fragen Sie die Durchschnittspunktzahl und die Gesamtpunktzahl aller Benutzer ab und sortieren Sie sie in umgekehrter Reihenfolge nach der Durchschnittspunktzahl
wählen Sie user_qq,avg(score) als „Durchschnittsscore“, sun(score) als „Gesamtscore“ aus der Scores-Gruppe nach user_qq orde by avg(score) desc
4. Ausführungsreihenfolge der SELECT-Anweisung
Die from-Klausel gibt die Datenquelle an
Die where-Klausel filtert Datensätze basierend auf angegebenen Bedingungen
Die group by-Klausel unterteilt die Daten in mehrere Gruppen
Verwenden Sie Aggregatfunktionen zum Berechnen
Verwenden Sie die Have-Klausel, um Gruppierungen zu filtern
Verwenden Sie die Order By-Klausel, um die Ergebnismenge zu sortieren
Zwei-Verbindungs-Abfrage
1. Mehrtisch-Verbindung
Beispiel: Punkteinformationen abfragen, Spieler-Spitznamen, Spielnamen und Punktestand anzeigen
Wählen Sie Benutzername als „Spitzname“, Spiel als „Spielname“ und Punktzahl als „Punktzahl“ aus „users.user_qq = scores.user_qq“ und „game.gno=Scores.gno“ aus.
Verbindungsabfrage ist In zwei Typen unterteilt: innere Verbindung und äußere Verbindung
Merkmale des inneren Joins: Die beiden verbundenen Tabellen haben den gleichen Status
Wenn in einer Tabelle keine entsprechenden Daten vorhanden sind, wird in der anderen Tabelle die Verbindung hergestellt wird nicht erstellt
Direkt nach der from-Klausel Wenn mehrere Tabellennamen erscheinen, ist diese Verbindungsmethode ein Inner Join, also ein impliziter Inner Join
Inner Join-Format anzeigen: Wählen Sie col_list aus Tabelle 1 aus [inner] Join table2 on table1.col=table2.clo1
Beispiel: Punkteinformationen abfragen, Spitznamen des Spielers, Spielnamen und Punktestand anzeigenBenutzername als „Spitzname“ und g_name als auswählen ' Spielname', Punktestand als' Frame .gno =scores.gno Inner Join-Benutzer auf Score.user_qq=user.user_qq
Beispiel: Überprüfen Sie den Spitznamen jedes Spielers, die Gesamtpunktzahl und die Durchschnittspunktzahl
Wählen Sie Benutzername als „Nickname“, die Summe (Punktzahl) als „Gesamtpunktzahl“ und den Durchschnitt (Punktzahl) als „ath“. Benutzer u Inner Join Scores s auf s.user_qq = u.user_qq Gruppe nach u.user_qq, Benutzername
Beispiel: Fragen Sie die durchschnittliche Punktzahl von mehr als 3500 Punkteinformationen ab und zeigen Sie den Spitznamen des Spielers, die Gesamtpunktzahl und die durchschnittliche Punktzahl an , und folgen Sie der Durchschnittsbewertung in absteigender Reihenfolge
‐ in absteigender Reihenfolge zu sortieren
group by user_qq Der Status der beiden verbundenen Tabellen ist ungleich 🎜> Alle Daten in der Basistabelle müssen erscheinen, auch wenn in der anderen Tabelle keine passenden Daten vorhanden sind, müssen sie mit NULL gefüllt werdenDie linke Tabelle ist die Basistabelle, wenn die linke Außenverbindung besteht , und die rechte Tabelle, wenn die rechte Tabelle mit der Basistabelle verbunden ist
Die erste Tabelle im Satz ist „linke Tabelle“ und die spätere Tabelle ist „rechte Tabelle“ Äußere Verknüpfung Format: SELECT COL_LIST FROM TABLE1 LEFT/RIGHT[OUTER] JOIN TABLE2 ON TABLE1.COL=TABLE2.COL Beispiel: Abfrage der Punkteinformationen aller Spieler in Spiel Nr. 5 select user_name as'Spitzname' gno als 'Spielnummer', Punkte als 'Punktzahl' von Benutzern U links beitreten Punkte S auf U.user_qq=S.user_qq und S.gno=5
Das obige ist der detaillierte Inhalt vonMySQL fasst Daten zusammen und gruppiert sie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!