Oracle 21.06.2010, 14:30 Uhr

Kreuztabellen mit SQL-Operationen

In den meisten Tabellenkalkulationen können eine Menge von gleichartigen Datensätzen in Gruppen, den sogenannten Pivot-Tabellen zusammengefasst werden. Bei Gruppierung nach zwei oder mehreren Feldern kann die Pivot-Tabelle auch als sogenannte Kreuztabelle angezeigt werden, um die Übersichtlichkeit zu erhöhen.
PIVOT-Operationen in der Datenbank durchzuführen ist schon seit jeher möglich, erfordert allerdings teilweise sehr komplexe SQL-Anweisungen. Das folgende Beispiel zeigt eine typische PIVOT-Operation der Quartals-Spalte QUARTER mit üblichen Bordmitteln:
SELECT product, SUM(CASE when quarter = 'Q1'
THEN quantity_sold ELSE NULL END) Q_1,
SUM(CASE when quarter = 'Q2' THEN quantity_sold
ELSE NULL END) Q_2, SUM(CASE when quarter = 'Q3'
THEN quantity_sold ELSE NULL END) Q_3, SUM(CASE when
quarter = 'Q4' THEN quantity_sold ELSE NULL END) Q_4
FROM (SELECT product, quarter, quantity_sold FROM
SALES_VIEW ) GROUP BY product;
Das aktuelle Datenbank-Release 11g stellt hierfür einfach nutzbare Operatoren wie PIVOT beziehungsweise UNPIVOT zur Verfügung. Das nächste Beispiel zeigt die einfache Implementierung des zuvor angeführten Beispiels mit dem neuen Operator PIVOT.
SELECT * FROM (SELECT product, quarter, quantity_sold 
FROM sales_view) PIVOT (sum(quantity_sold) FOR
quarter IN ('Q1' AS Q_1, 'Q2' AS Q_2, 'Q3' AS Q_3,
'Q4' AS Q_4));
(Ulrike Schwinn/Heinz-Wilhelm Fabry/am)



Das könnte Sie auch interessieren