1. Start
  2. Unternehmen
  3. Blog
  4. Neu in 26ai: GROUP BY ALL

Neu in 26ai: GROUP BY ALL

In einem vergangenen Blog-Eintrag haben wir bereits eine Verbesserung in der Oracle Datenbank 26ai vorgestellt, nämlich die Verwendung von Spaltenaliasen im GROUP BY Clause. Man braucht nun nicht mehr ewig lange Ausdrücke im GROUP BY verwenden sondern nutzt einfach die Spaltenaliase aus der SELECT-Liste. Das erhöht die Lesbarkeit und vereinfacht die Pflege, sofern sich an den Ausdrücken mal was ändert. Mit dem Release Update 23.9 wird das Ganze noch einfacher. Ein GROUP BY Ausdruck ist nun ganz simpel ein GROUP BY ALL. Die Datenbank erkennt selbst, nach welchen Spalten sie gruppieren muss. Nie wieder nervige Fehler “Not a GROUP BY Expression”. 

Hier ein einfaches Beispiel:

 

SYS@ORCL26:CDB$ROOT:>select con_id, owner, segment_type, tablespace_name, sum(bytes)/1024/1024 MB 
2 from cdb_segments 
3 group by con_id, owner, segment_type, tablespace_name 
4* order by con_id, owner, segment_type, tablespace_name;

   CON_ID OWNER                SEGMENT_TYPE          TABLESPACE_NAME             MB
_________ ____________________ _____________________ __________________ ___________ 
        1 AUDSYS               INDEX PARTITION       SYSAUX                      0.5 
        1 AUDSYS               LOB PARTITION         SYSAUX                        8 
        1 AUDSYS               TABLE PARTITION       SYSAUX                   2.0625 
        1 GSMADMIN_INTERNAL    INDEX                 SYSAUX                    0.375 
        1 GSMADMIN_INTERNAL    INDEX                 SYSTEM                   0.0625 
        1 GSMADMIN_INTERNAL    LOBINDEX              SYSAUX                   0.0625 
        1 GSMADMIN_INTERNAL    LOBSEGMENT            SYSAUX                     0.25 
[...]
        3 XDB                  LOBINDEX              SYSAUX                   16.375 
        3 XDB                  LOBSEGMENT            SYSAUX                  65.3125 
        3 XDB                  TABLE                 SYSAUX                   2.1875

97 rows selected.

 

Mit dem neuen GROUP BY ALL wird das SQL noch einmal wesentlich einfacher lesbar und pflegeleichter:

 

SYS@ORCL26:CDB$ROOT:>select con_id, owner, segment_type, tablespace_name, sum(bytes)/1024/1024 MB 
2 from cdb_segments 
3 group by all
4* order by con_id, owner, segment_type, tablespace_name;

      CON_ID OWNER               SEGMENT_TYPE          TABLESPACE_NAME             MB
  _________ ____________________ _____________________ __________________ ___________ 
           1 AUDSYS              INDEX PARTITION       SYSAUX                     0.5 
[...]
           3 XDB                 LOBSEGMENT            SYSAUX                 65.3125 
           3 XDB                 TABLE                 SYSAUX                  2.1875 
   
97 rows selected.

 

Eine kleine, aber feine Verbesserung, an die man sich bestimmt schnell gewöhnt. Und ein weiterer Grund, auf das neue Release umzusteigen.

Kommentare

Keine Kommentare

Kommentar schreiben

* Diese Felder sind erforderlich