Group by All

Group By aus Select generieren


BigQueryDb2 (LUW)DerbyH2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite20152017201920212023⊘ 3.5.7 - 3.50.0⊘ 2008R2 - 2022⊘ 8.3 - 18✓ 23.9 - 23.26.0a⊘ 11gR1 - 23.8⊘ 5.0 - 9.5.0⊘ 5.1 - 12.0.2⊘ 1.4.191 - 2.4.240⊘ 10.17.1.0⊘ 9.7 - 12.1.2✓ 2.0
  1. Entfernt die Group By All-Klausel manchmal, wenn sie zu einem Fehler führt, der ohne group by nicht auftritt

Einige Systeme unterstützen eine spezielle Group By All-Syntax als Kurzform zur Auflistung aller Select-Klausel Elemente, die keine Aggregatfunktion enthalten. Damit lässt sich die doppelte Auflistung der Select-Spalte in der Group By-Klausel auch vermeiden.

SELECT customers.id, customers.name, count(orders.id)
  FROM customers
  LEFT JOIN orders ON customers.id = orders.customer_id
 GROUP BY ALL

Das ist gleichwertig als würde man customers.id und customers.name explizit in der Group By-Klausel anführen.

Normative Referenzen

Die oben beschriebene Group By All Syntax ist nicht in ISO/IEC 9075-2:2023 standardisiert. Das Schlüsselwort all darf nicht mit jenem aus dem <set quantifier> verwechselt werden, welcher in group by auch erlaubt ist (T434, “GROUP BY DISTINCT”).

Voraussichtlich im nächsten Standard

Diese Funktion ist voraussichtlich im nächsten SQL-Standard. Da der Standard trozdem nur Spaltenreferenzen in der Group By-Klausel erlaubt ist Group By All nicht standard-konform, wenn dadurch Ausdrücke in den Gruppierungsschlüssel wandern.

Da die meisten Systeme jedoch Ausdrücke in Group By unterstützen gibt es eine Normierungslücke, die in manchen Fällen zu unterschiedlichen Ergebnissen bei unterschiedlichen Systemen führt, z. B. hier: select a + COUNT(*) OVER()✓✗.

20 Jahre SQL-Evolution kann man nicht an einem Tag nachholen. Abonniere den Newsletter via E-Mail, Bluesky oder RSS, um sukzessive aufzuholen und modern-sql.com am Radar zu behalten.

Über den Autor

Foto von Markus Winand

Markus Winand gibt auf modern-sql.com Einblick in SQL und zeigt, wie es von verschiedenen Systemen unterstützt wird. Zuvor machte er use-the-index-luke.com, was er noch immer wartet. Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

Sein Buch kaufen

Titelbild von „SQL Performance Explained“: Eichhörnchen läuft durchs Grass

Die Essenz: SQL-Tuning auf 200 Seiten

Jetzt Kaufen
(Taschenbuch und/oder PDF)

Sein Training

Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how

Erfahren Sie mehr»

Neuigkeiten Abonnieren

Markus Winands MailinglistenMarkus Winands RSS-FeedMarkus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf TwitterMarkus Winand auf Bluesky
Copyright 2015-2025 Markus Winand. Alle Rechte vorbehalten.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz und DSGVO