MySQL-Gruppierungsmethode für die Gruppierungssequenz einzelner Wörter und die Gruppierung mehrerer Felder

MySQL-Gruppierungsmethode für die Gruppierungssequenz einzelner Wörter und die Gruppierung mehrerer Felder

Ich habe hier eine Warentabelle erstellt. Schauen wir uns die darin enthaltenen Daten an:

mysql> wähle * aus Waren;
+----+------+------+------------+-------------+------------+
| ID | s_ID | b_ID | Warenname | Warenpreis | Warenbeschreibung |
+----+------+------+------------+-------------+------------+
| 1 | 1 | 5 | Buch | 22,35 | Buch |
| 2 | 2 | 5 | Kugel | 32,25 | Kugel |
| 3 | 3 | 5 | NULL | 3,23 | NULL |
| 4 | 3 | 5 | MacBook | 3,23 | Buch |
| 5 | 3 | 5 | Listenbuch | 2,30 | Buch |
| 6 | 1 | 1 | Nicebook | 9999,00 | Nicebook |
| 7 | 2 | 3 | Googlebook | 25,30 | Buch |
+----+------+------+------------+-------------+------------+

1. Gruppieren nach s_id

mysql> wähle *,group_concat(Warenname) Warennamen,group_concat(Warenbeschreibung) Warenbeschreibungen,group_concat(ID) IDs,group_concat(Warenpreis) Warenpreise aus Warengruppe nach s_id;
+----+------+------+------------+-------------+------------+------------------+---------------+-----------+----------------+
| ID | s_id | b_id | Warenname | Warenpreis | Warenbeschreibung | Warennamen | Warenbeschreibungen | IDs | Warenpreise |
+----+------+------+------------+-------------+------------+------------------+---------------+-----------+----------------+
| 1 | 1 | 5 | Buch | 22,35 | Buch | Buch, Nicebook | Buch, Nicebook | 1,6 | 22,35,9999,00 |
| 2 | 2 | 5 | Ball | 32,25 | Ball | Ball, Google Book | Ball, Buch | 2,7 | 32,25,25,30 |
| 3 | 3 | 5 | NULL | 3.23 | NULL | MacBook, Listbook | Buch, Buch | 3,4,5 | 3.23,3.23,2.30 |
+----+------+------+------------+-------------+------------+------------------+---------------+-----------+----------------+

Die Funktion group_concat() wird hier verwendet, um detaillierte Informationen zur Gruppe anzuzeigen.

Die obige Gruppierung nach einem einzelnen Feld ist sehr einfach und alle Datensätze mit derselben s_id werden zusammen gruppiert.

2. Gruppieren nach s_id, goods_desc Feldern

Analyse: Wenn hier Gruppen abgefragt werden, werden die Daten zuerst nach s_id gruppiert, und dann werden die Daten in jeder Gruppe nach goods_desc gruppiert

mysql> wähle *,group_concat(Warenname) Warennamen,group_concat(Warenbeschreibung) Warenbeschreibungen,group_concat(ID) IDs,group_concat(Warenpreis) Warenpreise aus Warengruppe nach s_id, Warenbeschreibung;
+----+------+------+------------+-------------+------------+------------------+-------------+------+--------------+
| ID | s_id | b_id | Warenname | Warenpreis | Warenbeschreibung | Warennamen | Warenbeschreibungen | IDs | Warenpreise |
+----+------+------+------------+-------------+------------+------------------+-------------+------+--------------+
| 1 | 1 | 5 | Buch | 22,35 | Buch | Buch | Buch | 1 | 22,35 |
| 6 | 1 | 1 | Nicebook | 9999,00 | Nicebook | Nicebook | Nicebook | 6 | 9999,00 |
| 2 | 2 | 5 | Kugel | 32,25 | Kugel | Kugel | Kugel | 2 | 32,25 |
| 7 | 2 | 3 | Googlebook | 25,30 | Buch | Googlebook | Buch | 7 | 25,30 |
| 3 | 3 | 5 | NULL | 3,23 | NULL | NULL | NULL | 3 | 3,23 |
| 4 | 3 | 5 | MacBook | 3,23 | Buch | MacBook, Listenbuch | Buch, Buch | 4,5 | 3,23,2,30 |
+----+------+------+------------+-------------+------------+------------------+-------------+------+--------------+

Ein Vergleich zwischen goods_descs hier und oben wird deutlich machen

Als nächstes können Sie nach Warenpreis gruppieren

mysql> wähle *,group_concat(Warenname) Warennamen,group_concat(Warenbeschreibung) Warenbeschreibungen,group_concat(ID) IDs,group_concat(Warenpreis) Warenpreise aus Warengruppe nach s_id, Warenbeschreibung, Warenpreis;
+----+------+------+------------+-------------+-------------+-------------+-------------+----------+-------------+----------+
| ID | s_id | b_id | Warenname | Warenpreis | Warenbeschreibung | Warennamen | Warenbeschreibungen | IDs | Warenpreise |
+----+------+------+------------+-------------+-------------+-------------+-------------+----------+-------------+----------+
| 1 | 1 | 5 | Buch | 22,35 | Buch | Buch | Buch | 1 | 22,35 |
| 6 | 1 | 1 | Nicebook | 9999,00 | Nicebook | Nicebook | Nicebook | 6 | 9999,00 |
| 2 | 2 | 5 | Kugel | 32,25 | Kugel | Kugel | Kugel | 2 | 32,25 |
| 7 | 2 | 3 | Googlebook | 25,30 | Buch | Googlebook | Buch | 7 | 25,30 |
| 3 | 3 | 5 | NULL | 3,23 | NULL | NULL | NULL | 3 | 3,23 |
| 5 | 3 | 5 | Listenbuch | 2,30 | Buch | Listenbuch | Buch | 5 | 2,30 |
| 4 | 3 | 5 | MacBook | 3,23 | Buch | MacBook | Buch | 4 | 3,23 |
+----+------+------+------------+-------------+-------------+-------------+-------------+----------+-------------+----------+

Hierbei muss beim Gruppieren mehrerer Felder lediglich darauf geachtet werden, dass die Felder nach der Gruppierungsreihenfolge entsprechend dem Inhalt der vorherigen Felder gruppiert werden.

Bei täglichen Entwicklungsaufgaben verwenden wir häufig die GROUP BY-Gruppierung von MySQL, um statistische Daten basierend auf den Gruppierungsfeldern in der Datentabelle zu erhalten. Beispielsweise gibt es eine Kurswahltabelle für Studierende mit folgendem Aufbau:

Tabelle: Subject_Selection

Fach Semester Teilnehmer
---------------------------------
ITB001 1 Johannes
ITB001 1 Bob
ITB001 1 Micky
ITB001 2 Jenny
ITB001 2 Jakob
MKB114 1. Johannes
MKB114 1 Erika

Wir möchten zählen, wie viele Studenten sich für jeden Kurs angemeldet haben, und das folgende SQL anwenden:

SELECT Betreff, Anzahl(*)
VON Betreffauswahl
GROUP BY Betreff

Es wurden folgende Ergebnisse erzielt:

Anzahl der Themen
------------------------------
ITB001 5
MKB114 2

Denn in der Tabelle ist verzeichnet, dass 5 Studierende ITB001 und 2 Studierende MKB114 gewählt haben.

Die Gründe für dieses Ergebnis sind:

GROUP BY X bedeutet, alle Datensätze mit demselben X-Feldwert in einer Gruppe zusammenzufassen.

Was ist mit GROUP BY X, Y?

GROUP BY X, Y bedeutet, alle Datensätze mit gleichen X- und Y-Feldwerten in eine Gruppe zu packen.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung, ob die MySQL-Datenbank Fremdschlüsseleinschränkungen verwenden soll
  • Warum ist der Speicherplatz nach dem Löschen von Tabellendaten in MySQL immer noch belegt?
  • Detaillierte Analyse der MySQL-Indexdatenstruktur
  • Grundlegende MySQL-Grundlagen: Gruppierungsfunktion, Aggregatfunktion, Gruppierungsabfrage – ausführliche Erklärung
  • MySQL-Abfrageanweisung nach Zeit gruppiert
  • Detaillierte Erklärung der Group-By-Anweisung in der MySQL-Datenbankgruppenabfrage
  • Beispiel für die Implementierung von Gruppierung und Deduplizierung in einer MySQL-Tabellenverknüpfungsabfrage
  • Methode zur Optimierung von MySQL-Gruppenabfragen
  • MySQL-Datenaggregation und -gruppierung

<<:  So benennen Sie unter Linux eine Gruppe von Dateien auf einmal um

>>:  Vue realisiert Bildwechseleffekt

Artikel empfehlen

7 native JS-Fehlertypen, die Sie kennen sollten

Inhaltsverzeichnis Überblick 1. Bereichsfehler 2....

Lösen Sie das Installationsproblem der mysql8.0.19 Winx64-Version

MySQL ist ein kleines relationales Open-Source-Da...

Docker+Nextcloud zum Erstellen eines persönlichen Cloud-Speichersystems

1. Docker-Installation und -Start yum installiere...

So verwenden Sie IDEA zum Konfigurieren von Tomcat und Erstellen von JSP-Dateien

Bevor Sie idea zum Schreiben von JSP-Dateien verw...

Vue implementiert Card-Flip-Karussellanzeige

Karussellanzeige der Vue-Karte beim Umschalten de...

Linux-Fernsteuerungsprogramm für Windows-System (drei Methoden)

Manchmal müssen wir Programme auf dem Windows-Sys...

Detaillierte Einführung in die gespeicherten MySQL-Funktionen

Inhaltsverzeichnis 1. Erstellen Sie eine gespeich...

Verwendung des Docker-Systembefehlssatzes

Inhaltsverzeichnis Docker-System df Docker-System...

Analyse der geplanten Aufgaben und Ereignisplanungsbeispiele von MySQL

Dieser Artikel beschreibt anhand von Beispielen d...

Detaillierte Erklärung zur Verwendung mehrerer Timer in CocosCreator

1. setTimeOut Drucken Sie abc nach 3 Sekunden. Nu...

Ein Beispiel zur Optimierung eines Projekts nach Abschluss des Vue-Projekts

Inhaltsverzeichnis 1. Geben Sie unterschiedliche ...