SQL Programmierung für Fortgeschrittene - Analytische Funktionen / Windowing
Der Schwerpunkt dieser Schulung bilden die analytischen Funktionen. Analytische Funktionen fassen, ähnlich wie die Gruppenfunktionen (SUM, COUNT, MAX...), mehr als eine Zeile der Ergebnismenge zu einem Ergebnis zusammen. Die meisten Gruppenfunktionen können ebenfalls auch als analytische Funktionen eingesetzt werden. Allerdings wird im Gegensatz zu den Gruppenfunktionen für jede Zeile des Ergebnisses jeweils ein Wert ausgegeben. Darüber hinaus besteht die Möglichkeit optional (über die analytische Klausel) anzugeben, welcher Anteil der Ergebnismenge in das Ergebnis einfließen soll bzw. wonach gruppiert werden soll.
Analytische Funktionen werden vor allem im Reporting, Controlling und anderen analytischen Bereichen eingesetzt und ersetzten oder ergänzen einen Cube / MDX.
Diese Schulung setzt fundierte Kenntnisse in den Grundlagen von SQL voraus.
Verzweigungen / Konditionaloperatoren
Verzweigungen, Konditional Expressions oder auch Fallunterscheidungen genannt, ermöglichen es Daten bewusst in die richtige Spalte zu lenken oder inhaltliche Korrekturen während der Ermittlung der Daten durchzuführen
- Konditional Expressions
- CASE
- CASE WHEN
- COALESCE
- CHOOSE
- IIF
- Einsatzzwecke und Szenarien
- NULLIF
Unterabfragen
Eine Unterabfragen ermöglicht es bestimmte Teilaufgaben auszulagern und getrennt von der eigentlichen, umschließenden Abfrage, zu entwickeln
- Wo können Unterabfragen angewendet werden (SELECT, FROM, JOIN, WHERE, WITH)
- wo und wie können Unterabfragen eingesetzt werden
- Wann sollte besser darauf verzichtet werden
- JOIN als alternative zu einer Unterabfrage
- Komplexe Lösungen mit Hilfe von Unterabfragen
JOINS
- CROSS, INNER und OUTER JOINS (LEFT, RIGHT, FULL)
- CROSS APPLY and OUTER APPLY
- Optimierung der Geschwindigkeit
Aggregate
Aggregate erlauben es Aufgaben wie Summen, Maximal-, Minimal-, Durchschnittswerte sowie das zählen von Datensätzen zu lösen
- SUM(), MIN(), MAX(), AVG(), COUNT(), in Kombination mit Konditionaloperatoren (CASE WHEN)
- Typische Fallen (NULL)
- Lösungen
- Geschwindigkeit Optimierung (Performance)
Recursive SQL's (Rekursion)
- Views vs WITH
- Stored Procedure/Function vs WITH
- WITH
SQL Window Funktionen - Analytische Funktionen
Die windowing, ranking und analytischen Funktionen erlauben es Probleme im SQL zu lösen, die im klassischen SQL nur sehr kompliziert mit Unterabfragen gelöst werden konnten (Umsatz in Prozent zum Gesamtumsatz). Sie bieten im wesentlichen einen Leistungsgewinn (Geschwindigkeit) aber auch wesentlich einfachere SQL's..
- RANK () PARTITION ... OVER ...
- DENSE_RANK () PARTITION ... OVER ...
- ROW_NUMBER () PARTITION ... OVER ...
- SUM () PARTITION ... OVER ...
- MIN () PARTITION ... OVER ...
- MAX () PARTITION ... OVER ...
- AVG () PARTITION ... OVER ...
- COUNT() PARTITION ... OVER ...
- LEAD() PARTITION ... OVER ...
- LAG() PARTITION ... OVER ...
GROUPING SETS Cube und Rollup
- CUBE
- ROLLUP
Typische Probleme
- Vergleich des Umsatzes des aktuellen Jahres mit dem Vorjahr
- Prozentualer Vergleich des Umsatzes im Monat zum Jahr, Ort zum Land (zu einer übergeordneten Struktur)
- Vergleich einer Summe mit der Summer eines Datensatzes vorher oder nachher
Geschwindigkeit
- Typische Fehler in einem SQL
- Wie kann man ein SQL schneller machen
- Welche Indexe helfen bei einem SQL (Analyse eines SQL)
- Anlegen von Indexen
- Welche Schreibweisen versprechen eine bessere Performance
Diese Schulung kann auf verschiedenen Datenbanken durchgeführt werden. Dabei wäre zu berücksichtigen das nicht alle Funktionen auch auf allen Datenbanksystem zu Verfügung stehen. Am besten geeignet sind Oracle, PostgreSQL und SQL Server. Sprechen Sie uns an, wir beraten Sie gerne darüber welche Inhalte für Ihr Datenbanksystem geeignet sind.