Skip to content
NextLytics
Megamenü_2023_Über-uns

Shaping Business Intelligence

Ob clevere Zusatzprodukte für SAP BI, Entwicklung aussagekräftiger Dashboards oder Implementierung KI-basierter Anwendungen - wir gestalten zusammen mit Ihnen die Zukunft von Business Intelligence. 

Megamenü_2023_Über-uns_1

Über uns

Als Partner mit tiefem Prozess-Know-how, Wissen der neuesten SAP-Technologien sowie hoher sozialer Kompetenz und langjähriger Projekterfahrung gestalten wir die Zukunft von Business Intelligence auch in Ihrem Unternehmen.

Megamenü_2023_Methodik

Unsere Methodik

Die Mischung aus klassischem Wasserfallmodell und agiler Methodik garantiert unseren Projekten eine hohe Effizienz und Zufriedenheit auf beiden Seiten. Erfahren Sie mehr über unsere Vorgehensweise.

Produkte
Megamenü_2023_NextTables

NextTables

Daten in SAP BW out of the Box bearbeiten: Mit NextTables wird das Editieren von Tabellen einfacher, schneller und intuitiver, egal ob Sie SAP BW on HANA, SAP S/4HANA oder SAP BW 4/HANA nutzen.

Megamenü_2023_Connector

NextLytics Connectoren

Die zunehmende Automatisierung von Prozessen erfordert die Konnektivität von IT-Systemen. Die NextLytics Connectoren ermöglichen eine Verbindung Ihres SAP Ökosystems mit diversen open-source Technologien.

IT-Services
Megamenü_2023_Data-Science

Data Science & Engineering

Bereit für die Zukunft? Als starker Partner stehen wir Ihnen bei der Konzeption, Umsetzung und Optimierung Ihrer KI-Anwendung zur Seite.

Megamenü_2023_Planning

SAP Planning

Wir gestalten neue Planungsanwendungen mithilfe von SAP BPC Embedded, IP oder  SAC Planning, die einen Mehrwert für Ihr Unternehmen schaffen.

Megamenü_2023_Dashboarding

Dashboarding

Mit unserer Expertise verhelfen wir Ihnen auf Basis von Tableau, Power BI, SAP Analytics Cloud oder SAP Lumira zu aussagekräftigen Dashboards. 

Megamenü_2023_Data-Warehouse-1

SAP Data Warehouse

Planen Sie eine Migration auf SAP HANA? Wir zeigen Ihnen, welche Herausforderungen zu beachten sind und welche Vorteile eine Migration bringt.

Business Analytics
Megamenü_2023_Procurement

Procurement Analytics

Transparente und valide Zahlen sind vor allem in Unternehmen mit dezentraler Struktur wichtig. SAP Procurement Analytics ermöglicht die Auswertung von SAP ERP-Daten in SAP BI.

Megamenü_2023_Reporting

SAP HR Reporting & Analytics

Mit unserem Standardmodell für Reporting von SAP HCM mit SAP BW beschleunigen Sie administrative Tätigkeiten und stellen Daten aus verschiedenen Systemen zentral und valide zur Verfügung.

Megamenü_2023_Dataquality

Data Quality Management

In Zeiten von Big Data und IoT kommt der Vorhaltung einer hohen Datenqualität eine enorm wichtige Bedeutung zu. Mit unserer Lösung für Datenqualitätsmanagement (DQM) behalten Sie stets den Überblick.

Karriere
Megamenü_2023_Karriere-2b

Arbeiten bei NextLytics

Wenn Du mit Freude zur Arbeit gehen möchtest und dabei Deine berufliche und persönliche Weiterentwicklung nicht zu kurz kommen soll, dann bist Du bei uns genau richtig! 

Megamenü_2023_Karriere-1

Berufserfahrene

Zeit für etwas Neues? Gehe Deinen nächsten beruflichen Schritt und gestalte Innovation und Wachstum in einem spannenden Umfeld zusammen mit uns!

Megamenü_2023_Karriere-5

Berufseinsteigende

Schluss mit grauer Theorie - Zeit, die farbenfrohe Praxis kennenzulernen! Gestalte bei uns Deinen Einstieg ins Berufsleben mit lehrreichen Projekten und Freude an der Arbeit.

Megamenü_2023_Karriere-4-1

Studierende

Du möchtest nicht bloß die Theorie studieren, sondern Dich gleichzeitig auch praktisch von ihr überzeugen? Teste mit uns Theorie und Praxis und erlebe wo sich Unterschiede zeigen.

Megamenü_2023_Karriere-3

Offene Stellen

Hier findest Du alle offenen Stellenangebote. Schau Dich um und bewirb Dich - wir freuen uns! Falls keine passende Stelle dabei ist, sende uns gerne Deine Initiativbewerbung zu.

Blog
NextLytics Newsletter Teaser
Hier für unseren monatlichen Newsletter anmelden!
Newsletter abonnieren
 

So nutzen Sie Window Functions in SQLScript

In diesem Artikel definieren wir zunächst den Begriff der Window Functions und beschreiben ihre Funktionsweise. Anschließend analysieren wir die Syntaxelemente dieser Funktionsgruppe und kombinieren die aufgezeigten Aspekte in einer Fallstudie.

Dabei nutzen wir einen homogenen Datensatz und arbeiten stets am Beispiel der Summierungsfunktion.

Im Appendix finden Sie eine Auswahl anderer, nützlicher Window Functions, sowie einen Download aller in diesem Artikel genutzten Tabellen, Datensätze und Coding Beispiele - so können Sie im eigenen System darauf aufbauen.

Window Functions sind ein Bestandteil aller modernen SQL Dialekte, so auch SQLScript.

Wie der Name suggeriert, handelt es sich dabei um einen Befehl, der ein virtuelles “Fenster”, sprich eine Partition, innerhalb des SELECT Befehls generiert. Dieses Fenster stellt eine Teilmenge des gesamten SELECT dar. Basierend auf der gewählten Funktion, wird innerhalb dieser Teilmenge eine entsprechende Aggregation, beispielsweise Summierung, durchgeführt.

Zur Veranschaulichung dient ein kurzes Beispiel:

Syntax Beispiele von Window Functions

Einzelbuchungen von Kosten mit zugehörigen Kostenstellen und Kostenstellengruppen.


Das Ergebnis der Window Function wird als Spalte mit dem Namen “CCGRPCOST” ausgegeben. Dafür wird die Summe aller Kosten (Gelb markiert) innerhalb einer Kostencenter Gruppe (Blau markiert) summiert.

Bei einer herkömmlichen Summenfunktion würde nur eine Zeile ausgegeben werden, wohingegen bei einer Window Function alle Zeilen ausgegeben werden, was eine größere Flexibilität bei dem Aufbau von SQL-Abfragen ermöglicht.

Aufbau der Syntax

Zur Verdeutlichung der Syntax wird das obige Beispiel weitergeführt:

Syntax Beispiele von Window Functions mit steigender Komplexität.

Syntax Beispiele von Window Functions mit steigender Komplexität.

BASICS: AGGREGATION() OVER(PARTITION BY …)

Zunächst wird die Aggregationsfunktion definiert und, falls nötig, Parameter übergeben - hier sum(“COST”) - sprich die Summe der Spalte “COST”.

Als nächstes folgt der Befehl OVER(PARTITION BY … ) . Dadurch werden die Fenster definiert, auf welche die Aggregationsfunktion angewandt wird. So definieren wir hier die Spalte “COSTCENTREGROUPTEXT” als Fenster. Entsprechend wird die Summe für jeden einzigartigen Wert dieser Spalte separat berechnet.

Zwar lässt sich eine reguläre Summe bereits mit der obigen Syntax bilden, um jedoch eine laufende Summe zu berechnen, muss ein weiteres Syntaxelement hinzugezogen werden:

ORDER BY … [ASC | DESC]

Ähnlich wie in der WHERE Klausel einer simplen SQL Abfrage, so kann auch in einer Window Function ein solches ORDER BY Stichwort verwendet werden. Damit wird die Sortierung innerhalb des Fensters definiert, was Auswirkungen auf die Berechnung hat. Im Falle der Summenfunktion wird dadurch eine laufende Summe generiert.

ROWS BETWEEN … PRECEDING AND … FOLLOWING

Ein weiteres Element ist das ROWS Stichwort. Durch Anpassung der Argumente dieses Stichworts können noch komplexere Sachverhalte modelliert und berechnet werden. Entsprechend wird hier mittels ROWS BETWEEN 2 PRECEDING AND CURRENT ROW die Summe der zwei vorhergehenden Zeilen plus der aktuellen Zeile gebildet.


Steigern Sie die Leistung Ihres BW mit SQLScript! Hier geht's zum Whitepaper

SAP SQLScript Whitepaper


Fallstudie: Kostenanalyse

Zuletzt beleuchten wir die aufgezeigten Konzepte anhand eines konkreten Anwendungsfalls.

Dafür betrachten wir eine initiale Fragestellung und die Entwicklung einer passenden Lösung. Wir arbeiten hierfür mit dem selben Datensatz der vorhergehenden Beispiele.

Szenario:

Im gegebenen Monat wurden mehr Kosten verursacht als das Budget eigentlich zulässt. In dem Versuch ein Sparpotenzial aufzuzeigen, möchte die Controlling Abteilung analysieren, welche die jeweils größten Kostenpunkte eines Bereichs sind. Dabei soll eine kleinere Abteilung mit weniger Budget nicht übermäßig benachteiligt werden, weshalb die Kostenpunkte in ein Verhältnis zu den Gesamtkosten der Abteilung gesetzt werden.

In dem verwendeten HANA SQL Data Warehouse gibt es drei Tabellen, die relevante Daten enthalten:

Tabelle Window Functions in SQLScript_1

Zunächst bilden wir einen Prototypen in der Form einer SQL Abfrage und joinen die obigen Tabellen anhand ihrer gemeinsamen Fremdschlüssel und Primärschlüssel Paare. Dabei vergeben wir sinnvolle Aliase und grenzen die Auswahl im SELECT auf relevante Spalten ein.

Tabelle Window Functions in SQLScript_2

Nun bilden wir die eigentliche Kennzahl.

Tabelle Window Functions in SQLScript_3

Schlüsseln wir den Code etwas auf und beginnen mit den simplen Befehlen:

Die 1. und 4. Zeile dienen der Formatierung als Prozentzahl mit zwei Nachkommastellen und die 5. Zeile benennt die Spalte, um Sie bei der Ausgabe lesbarer zu gestalten.

Für den Wert selbst, verwenden wir in der zweiten Zeile die bereits gegebene Spalte cost.“COST” als Zähler und dividieren diese durch den Nenner in der 3. Zeile.

Der Nenner in der 3. Zeile wird mittels einer Window Function realisiert, welche die Summe der cost.”COST” Spalte je ccgrp.”COSTCENTREGROUPID” bzw. die Summe der Kosten je Kostencenter Gruppe berechnet.

Letztendlich erhalten wir dadurch einen prozentualen Wert, der uns den Anteil der jeweiligen Kosten an den Gesamtkosten der zugehörigen Kostencenter Gruppe zeigt.

Anschließend sortieren wir das Ergebnis mittels des ORDER BY Befehls und erhalten folgendes Ergebnis:

Tabelle Window Functions in SQLScript_4

Durch diese Analyse konnten wir aufzeigen, dass die “COSTLINEITEMID” bzw. der Kostenpunkt mit der ID ‘49’ als Priorität bei den Sparmaßnahmen gelten sollte.

Die Entscheidungsträger sind mit der Analyse zufrieden, weshalb wir unseren SQL Code als Calculation View bereitstellen. Dadurch ist dieser als wiederverwendbares Objekt für analoge, zukünftige Analysen verfügbar und kann in einem Frontend Tool wie Tableau problemlos eingebunden, visualisiert und geteilt werden.

Appendix

Eine Vielzahl an Window Functions stehen zur Verfügung, um verschiedenartige Aggregationen zu ermöglichen. Eine Auswahl von nützlichen Varianten aus unserer Beratungspraxis finden Sie im Folgenden:

Tabelle Window Functions in SQLScript_5

Den Download der Tabellen, Datensätze und Coding Beispiele finden Sie über folgenden Link.

Haben Sie Fragen zu SAP HANA SQLScript? Versuchen Sie das nötige Know-How in Ihrer Abteilung aufzubauen oder benötigen Sie Unterstützung bei einer konkreten Fragestellung? Wir helfen Ihnen gerne dabei. Fordern Sie noch heute ein unverbindliches Beratungsangebot an! 

Erfahren Sie mehr über  SAP HANA SQLScript

,

avatar

Irvin Rodin

Irvin ist seit 2019 im HANA Native und Datasphere-Umfeld unterwegs. Dabei kann er vor allem auf Erfahrungen als Berater und in der Entwicklung auf der XSA Plattform mittels SQLScript zurückgreifen. In seiner Freizeit spielt er leidenschaftlich Basketball und ist auch großer NBA Fan.

Sie haben eine Frage zum Blog?
Fragen Sie Irvin Rodin

Gender Hinweis Aufgrund der besseren Lesbarkeit wird im Text das generische Maskulinum verwendet. Gemeint sind jedoch immer alle Menschen.

Blog - NextLytics AG 

Welcome to our blog. In this section we regularly report on news and background information on topics such as SAP Business Intelligence (BI), SAP Dashboarding with Lumira Designer or SAP Analytics Cloud, Machine Learning with SAP BW, Data Science and Planning with SAP Business Planning and Consolidation (BPC), SAP Integrated Planning (IP) and SAC Planning and much more.

Informieren Sie mich über Neuigkeiten

Verwandte Beiträge

Letzte Beiträge