Heim > Datenbank > MySQL-Tutorial > Hauptteil

Warum sollten wir in MySQL SELECT-Abfragen keine Gruppenfunktionen für nicht gruppierte Felder ohne GROUP BY-Klausel verwenden?

PHPz
Freigeben: 2023-08-28 22:01:05
nach vorne
757 Leute haben es durchsucht

为什么我们不应该在 MySQL SELECT 查询中使用没有 GROUP BY 子句的非分组字段的分组函数?

Das liegt daran, dass ohne die GROUP BY-Klausel die von MySQL zurückgegebene Ausgabe irreführend sein kann. Zu Demonstrationszwecken geben wir in der unten angegebenen Tabelle „Studenten“ das folgende Beispiel an:

mysql> Select * from Student;
+------+---------+---------+-----------+
| Id   | Name    | Address | Subject   |
+------+---------+---------+-----------+
| 1    | Gaurav  | Delhi   | Computers |
| 2    | Aarav   | Mumbai  | History   |
| 15   | Harshit | Delhi   | Commerce  |
| 20   | Gaurav  | Jaipur  | Computers |
+------+---------+---------+-----------+
4 rows in set (0.00 sec)

mysql> Select count(*), Name from Student;
+----------+--------+
| count(*) | name   |
+----------+--------+
| 4        | Gaurav |
+----------+--------+
1 row in set (0.00 sec)
Nach dem Login kopieren

Aus dem obigen Abfrageergebnis können wir erkennen, dass es die Ausgabe der Gruppenfunktion COUNT(*) als Gesamtzahl der Zeilen in zurückgibt table , aber der Wert „Gaurav“ im Feld „Name“ ist irreführend, denn auf welcher Grundlage wir dies tun, ist es entweder der erste Wert der Spalte oder er wird mehrmals in der Spalte gespeichert und MySQL gibt ihn zurück.

Wenn wir diese Abfrage nun mit der GROUP BY-Klausel schreiben, sieht die Ergebnismenge wie folgt aus:

mysql> Select count(*), name from student GROUP BY id;
+----------+---------+
| count(*) | name    |
+----------+---------+
| 1        | Gaurav  |
| 1        | Aarav   |
| 1        | Harshit |
| 1        | Gaurav  |
+----------+---------+
4 rows in set (0.00 sec)
Nach dem Login kopieren

Wie aus der obigen Ergebnismenge hervorgeht, erhalten wir mit Hilfe der GROUP BY-Klausel eine aussagekräftige Ausgabe.

Das obige ist der detaillierte Inhalt vonWarum sollten wir in MySQL SELECT-Abfragen keine Gruppenfunktionen für nicht gruppierte Felder ohne GROUP BY-Klausel verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage