Heim  >  Artikel  >  Datenbank  >  MySQL fasst Daten zusammen und gruppiert sie

MySQL fasst Daten zusammen und gruppiert sie

大家讲道理
大家讲道理Original
2017-08-19 10:42:181565Durchsuche

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'

ist

Beispiel: 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 anzeigen

Benutzername 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 werden

Die 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn