# Numerische Funktionen
# plus
Berechnet die Summe der beiden Werte a
und b
.
plus(a, b)
Es ist möglich, eine Ganzzahl und ein Datum oder ein Datum mit Uhrzeit zu addieren. Die erste Operation erhöht die Anzahl der Tage im Datum, die zweite Operation erhöht die Anzahl der Sekunden im Datum mit Uhrzeit.
Alias
a + b
(Operator)
# minus
Berechnet die Differenz der beiden Werte a
und b
. Das Ergebnis ist immer vorzeichenbehaftet.
Ähnlich wie plus
ist es möglich, eine Ganzzahl von einem Datum oder einem Datum mit Uhrzeit abzuziehen.
minus(a, b)
Alias
a - b
(Operator)
# multiply
Berechnet das Produkt der beiden Werte a
und b
.
multiply(a, b)
Alias:
a * b
(Operator)
# divide
Berechnet den Quotienten der beiden Werte a
und b
. Der Ergebnistyp ist immer Float64 (opens new window). Die Ganzzahldivision wird durch die Funktion intDiv
bereitgestellt.
divide(a, b)
Die Division durch 0 liefert inf
, inf
oder nan
.
Alias
a / b
(Operator)
# exp
Gibt e hoch das gegebene Argument zurück.
exp(x)
# log2
Gibt den binären Logarithmus des Arguments zurück.
log2(x)
# log10
Gibt den dekadischen Logarithmus des Arguments zurück.
log10(x)
# cos
Gibt den Kosinus des Arguments zurück.
cos(x)
# tan
Gibt den Tangens des Arguments zurück.
tan(x)
# sin
Gibt den Sinus des Arguments zurück.
sin(x)
# sqrt
Gibt die Quadratwurzel des Arguments zurück.
sqrt(x)
# abs
Berechnet den absoluten Wert von a
. Hat keine Auswirkung, wenn a
einen vorzeichenlosen Typ hat. Wenn a
einen vorzeichenbehafteten Typ hat, wird eine vorzeichenlose Zahl zurückgegeben.
abs(a)
# floor
Gibt die größte ganze Zahl zurück, die kleiner oder gleich x
ist. Eine ganze Zahl ist ein Vielfaches von 1 / 10N oder die nächstgelegene Zahl des entsprechenden Datentyps, wenn 1 / 10N nicht genau ist. 'N' ist eine Ganzzahlkonstante, ein optionaler Parameter. Standardmäßig ist es null, was bedeutet, dass auf eine ganze Zahl gerundet wird. 'N' kann negativ sein.
floor(x[, N])
x
ist ein numerischer Typ. Das Ergebnis ist eine Zahl vom gleichen Typ. Bei ganzzahligen Argumenten macht es Sinn, mit einem negativen N
-Wert zu runden (für nicht-negative N
tut die Funktion nichts). Wenn das Runden zu einem Überlauf führt (zum Beispiel floor(-128, -1)), wird ein implementationsabhängiges Ergebnis zurückgegeben.
Beispiele
floor(123.45, 1) = 123.4, floor(123.45, -1) = 120
# ceil
Gibt die kleinste ganze Zahl zurück, die größer oder gleich x
ist. In jeder anderen Hinsicht ist es die gleiche Funktion wie die floor
-Funktion (siehe oben).
# round
Rundet einen Wert auf eine bestimmte Anzahl von Dezimalstellen. Die Funktion gibt die nächstgelegene Zahl der angegebenen Ordnung zurück. Wenn die gegebene Zahl den gleichen Abstand zu den umgebenden Zahlen hat, verwendet die Funktion das Banker-Rundungsverfahren für Gleitkommazahlen und rundet weg von null für andere Zahlentypen (Decimal).
round(expression [, decimal_places])
Argumente
expression
- Eine Zahl, die gerundet werden soll. Kann ein beliebiger Ausdruck sein, der den numerischen Datentyp zurückgibt.decimal-places
- Ein ganzzahliger Wert.- Wenn
decimal-places > 0
, rundet die Funktion den Wert rechts vom Dezimalpunkt. - Wenn
decimal-places < 0
, rundet die Funktion den Wert links vom Dezimalpunkt. - Wenn
decimal-places = 0
, rundet die Funktion den Wert auf eine ganze Zahl. In diesem Fall kann das Argument weggelassen werden.
- Wenn
Rückgabewert
Die gerundete Zahl vom gleichen Typ wie die Eingangsnummer.
Beispiele
Verwendung mit Float
SELECT number / 2 AS x, round(x) FROM system.numbers LIMIT 3
┌───x─┬─round(divide(number, 2))─┐ │ 0 │ 0 │ │ 0.5 │ 0 │ │ 1 │ 1 │ └─────┴──────────────────────────┘
Verwendung mit Decimal
SELECT cast(number / 2 AS Decimal(10,4)) AS x, round(x) FROM system.numbers LIMIT 3
┌───x─┬─round(CAST(divide(number, 2), 'Decimal(10, 4)'))─┐ │ 0 │ 0 │ │ 0.5 │ 1 │ │ 1 │ 1 │ └─────┴──────────────────────────────────────────────────┘
Runden auf die nächstgelegene Zahl.
round(3.2, 0) = 3 round(4.1267, 2) = 4.13 round(22,-1) = 20 round(467,-2) = 500 round(-467,-2) = -500
Banker-Rundung.
round(3.5) = 4 round(4.5) = 4 round(3.55, 1) = 3.6 round(3.65, 1) = 3.6
# rand32
Gibt eine zufällige UInt32-Zahl zurück, die gleichmäßig über den Bereich aller möglichen UInt32-Zahlen verteilt ist. Verwendet einen linearen Kongruenzgenerator.
# randNormal
Gibt eine zufällige Float64-Zahl zurück, die aus einer Normalverteilung (opens new window) gezogen wurde.
randNormal(mean, variance)
Argumente
mean
-Float64
- Mittelwert der Verteilung,variance
-Float64
- Varianz der Verteilung.
Rückgabewert
- Zufallszahl.
- Typ: Float64.
Beispiel
SELECT randNormal(10, 2) FROM numbers(5)
┌──randNormal(10, 2)─┐
│ 13.389228911709653 │
│ 8.622949707401295 │
│ 10.801887062682981 │
│ 4.5220192605895315 │
│ 10.901239123982567 │
└────────────────────┘