Warum fügt Count() in SQL alle anderen Datensätze im Select zu einem Datensatz zusammen?

2 Antworten

COUNT() ist eine sogennante Aggregatfunktion - wie auch z.B. SUM().

Das bedeutet, dass sie alle vom SELECT erfassten Datensätze zu einem Datensatz zusammenfasst - oder eben zu mehreren, wenn du GROUP BY verwendest, um anzugeben, wonach du denn gruppieren möchtest.

Das ist durchaus logisch nachvollziehbar - und auch recht nützlich.

Es hilft übrigens ungemein, das in der Dokumentation der Datenbank nachzulesen.

Count gibt an, wie oft die Spalten der Ergebniszeile in der Kombination derer Werte in der Tabelle vorkommen.

Wenn du keine weiteren, gruppierten Spalten selektierst, gibt Count die Gesamtzahl aller Tupel der Tabelle wieder.


Suboptimierer  25.03.2022, 11:41

Beispiel: Du slektierst NAME, COUNT(*)

Ein Ergebnis könnte so aussehen

Tim  2
Tom  3
Fred 1

Selektierst du nur COUNT steht dort

6
0