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

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

PHPz
PHPznach vorne
2023-08-28 22:01:05760Durchsuche

为什么我们不应该在 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)

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)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:NoSQL-HerausforderungenNächster Artikel:NoSQL-Herausforderungen