Im Data Warehouse sind drei verschiedene Datentypen definiert: Zahlen, Text und Datum. Mit diesen können verschiedene Rechenoperationen durchgeführt werden.
Typ | Beispiel |
---|---|
Zahl | -123.45 |
Text | “Text” |
Datum | YYYY-MM-DD HH:MM:SS |
Für verschiedene Rechenoperationen werden Referenzen auf andere Datentabellenwerte verwendet. Dabei wird entweder auf die gleiche Zeile in einer anderen Spalte oder auf eine andere Spalte verwiesen.
Referenz | Beispiel |
---|---|
Ein Wertverweis liest einen Wert aus der aktuellen Zeile in der angegebenen Spalte und wird für direkte Berechnungen verwendet. | $2 (Wert in Spalte 2) |
Ein Spaltennachweis bezieht sich auf alle vorhergehenden Werte aus der angegebenen Spalte und wird für Suchen und laufende Berechnungen verwendet. | @2 (Alle Werte in Spalte 2) |
In der folgenden Tabelle sind alle zur Verfügung stehenden Rechenoperationen mit Beispielen angegeben.
Funktion | Beschreibung | Beispiel |
---|---|---|
Addition | sum(a Zahl,...) Summiert eine beliebige Anzahl Wertesum(date Datum, seconds Zahl) Addiert die angegebene Anzahl Sekunden auf ein Datumsum(col Spalte) Laufende Summe über die angegebene Spalte | sum($0,$5,10) Summiert Spalte 0,5 und 10 auf. sum($0, -60) Zieht 60 Sekunden eines Datums ab. sum(@0) Berechnet laufende Summe über spalte 0. |
Differenz | diff(a Zahl, b Zahl) Berechnet die Differenz zwischen zwei Werten diff(col Spalte) Berechnet die Differenz aus dem aktuellen und vorhergehenden Wert in der angegebenen Spalte | diff($0, 50) Zieht Wert 50 von Spalte 0 ab. diff(@0) Berechnet die Differenz zwischen zwei Zeilen in Spalte 0. |
Multiplikation | mul(a Zahl,b Zahl) Multipliziert zwei Werte miteinander. | mul($0, 10) Multipliziert Spalte 0 mit 10. |
Division | div(a Zahl, b Zahl) Dividiert zwei Werte miteinander. | div($0, 10) Dividiert Spalte 0 durch die Zahl 10. |
Mittelwert | avg(a Zahl, ...) Berechnet den Mittelwert einer beliebigen Anzahl Werte avg(col Spalte) Laufender Mittelwert über die angegebene Spalte | avg($0, $5, 10) Berechnet Mittelwert aus Spalte 0,5 und 10. avg(@0) Berechnet laufenden Mittelwert für Spalte 0. |
Minimum | min(a Zahl, ...) Berechnet das Minimum einer beliebigen Anzahl Werte min(col Spalte) Laufendes Minimum über die angegebene Spalte | min($0, $5, $10) Berechnet Minimum aus Spalte 0, 5 und 10. min(@0) Berechnet laufendes Minimum für Spalte 0. |
Maximum | max(a Zahl, ...) Berechnet das Maximum einer beliebigen Anzahl Werte max(col Spalte) Laufendes Maximum über die angegebene Spalte | max($0, $5, $10) Berechnet Maximum aus Spalte 0, 5 und 10. max(@0) Berechnet laufendes Maximum für Spalte 0. |
Absolutwert | abs(a Zahl) abs($0) Berechnet den Absolutwert | |
Runden | round(col Spalte) Gibt eine gerundete Zahl zurück. |
In der folgenden Tabelle sind alle Berechnungsfunktionen mit Bezug zu einem Datum gelistet
Funktion | Beschreibung | Beispiel |
---|---|---|
Stunden/Minuten aus Datum | time(col Spalte) Zeit in Stunden Minimum z.B. 830, 1245 Gibt die Stunden und Minuten eines Datums zurück | |
Wochentag | weekend(col Spalte) 1 bei Wochenende, sonst 0 Gibt zurück ob ein Datum am Wochenende liegt | |
Wochenende | weekday(col Spalte) Gibt den Tag der Woche zurück 0 für Montag, 6 für Sonntag Gibt eine numerischen Wert für den Wochentag zurück | |
Zeitangabe runden | round(col Spalte) Gibt die gerundete Zeitangabe zurück |
In der folgenden Tabelle sind alle Funktionen mit Bezug zu logischen Operationen gelistet.
Funktion | Beschreibung | Beispiel |
---|---|---|
Werte zuweisen | match(col Spalte, wenn1, dann1,wenn2, dann2, ...,[,default]) Weißt ein Wert das angegebene Kriterium zu. Der Default- Wert wird verwendet, falls kein Kriterium zutrifft. | match($2, 0, "Nachtschicht", 1, "Tagschicht", 2, "Spätschicht") Bei einem Eintrag mit dem Wert 0 in der dritten Spalte wird in der neuen Spalte der Text ” Nachtschicht” eingetragen – für einen Eintrag 1 wird “Tagschicht” eingetragen |
Wertebereich zuweisen | matchrange(col Spalte, von1, bis1, dann1, von2, bis2, dann2,...[, default]) Weißt einem Wertebereich das angegebene Kriterium zu. Der Default-Wert wird verwendet, falls kein Kriterium zutrifft | matchrange(time($0), 600, 1400, "Früh", 1400, 2200, "Spät", "Nacht") Aus Spalte mit dem Datum/Zeitstempel (hier Spalte 0) wird ein neue Spalte berechnet die Früh-, Spät- und Nachtschicht unterscheidet. |