Schulung, Beratung und Entwicklung

Glück IT

Gesellschaft für IT Beratung, Schulung und Entwicklung

NEWS

Content Management System ®CMAssist

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.