GoogleSQL for BigQuery unterstützt mathematische Funktionen. Alle mathematischen Funktionen verhalten sich in folgender Weise:
- Sie geben
NULL
zurück, wenn einer der EingabeparameterNULL
ist. - Sie geben
NaN
zurück, wenn eines der ArgumenteNaN
ist.
ABS
ABS(X)
Beschreibung
Berechnet den absoluten Wert. Gibt einen Fehler zurück, wenn das Argument eine Ganzzahl ist und der Ausgabewert nicht als der gleiche Typ dargestellt werden kann. Dies geschieht nur für den größten negativen Eingabewert, der nicht positiv dargestellt wird.
X | ABS(X) |
---|---|
25 | 25 |
-25 | 25 |
+inf |
+inf |
-inf |
+inf |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
ACOS
ACOS(X)
Beschreibung
Berechnet den Hauptwert des inversen Kosinus von X. Der zurückgegebene Wert liegt im Bereich [0,π]. Erzeugt einen Fehler, wenn X ein Wert außerhalb des Bereichs [-1, 1] ist.
X | ACOS(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
X < -1 | Fehler |
X > 1 | Fehler |
ACOSH
ACOSH(X)
Beschreibung
Berechnet den inversen hyperbolischen Kosinus von X. Erzeugt einen Fehler, wenn X ein Wert kleiner als 1 ist.
X | ACOSH(X) |
---|---|
+inf |
+inf |
-inf |
NaN |
NaN |
NaN |
X < 1 | Fehler |
ASIN
ASIN(X)
Beschreibung
Berechnet den Hauptwert des inversen Sinus von X. Der zurückgegebene Wert liegt im Bereich [-π/2,π/2]. Erzeugt einen Fehler, wenn X außerhalb des Bereichs [-1, 1] liegt.
X | ASIN(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
X < -1 | Fehler |
X > 1 | Fehler |
ASINH
ASINH(X)
Beschreibung
Berechnet den inversen hyperbolischen Sinus von X. Scheitert nie.
X | ASINH(X) |
---|---|
+inf |
+inf |
-inf |
-inf |
NaN |
NaN |
ATAN
ATAN(X)
Beschreibung
Berechnet den Hauptwert des inversen Tangens von X. Der zurückgegebene Wert liegt im Bereich [-π/2,π/2]. Scheitert nie.
X | ATAN(X) |
---|---|
+inf |
π/2 |
-inf |
-π/2 |
NaN |
NaN |
ATAN2
ATAN2(X, Y)
Beschreibung
Berechnet den Hauptwert des inversen Tangens von X/Y unter Verwendung der Vorzeichen der beiden Argumente, um den Quadranten zu bestimmen. Der zurückgegebene Wert liegt im Bereich [-π, π].
X | J | ATAN2(X, Y) |
---|---|---|
NaN |
Beliebiger Wert | NaN |
Beliebiger Wert | NaN |
NaN |
0,0 | 0,0 | 0,0 |
Positiver endlicher Wert | -inf |
π |
Negativer endlicher Wert | -inf |
-π |
Endlicher Wert | +inf |
0,0 |
+inf |
Endlicher Wert | π/2 |
-inf |
Endlicher Wert | -π/2 |
+inf |
-inf |
¾π |
-inf |
-inf |
-¾π |
+inf |
+inf |
π/4 |
-inf |
+inf |
-π/4 |
ATANH
ATANH(X)
Beschreibung
Berechnet den inversen hyperbolischen Tangens von X. Erzeugt einen Fehler, wenn X außerhalb des Bereichs (-1, 1) liegt.
X | ATANH(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
X < -1 | Fehler |
X > 1 | Fehler |
CBRT
CBRT(X)
Beschreibung
Berechnet die Kubikwurzel X
. X
kann ein beliebiger Datentyp sein, der in FLOAT64
umgewandelt wird.
Unterstützt das Präfix SAFE.
.
X | CBRT(X) |
---|---|
+inf |
inf |
-inf |
-inf |
NaN |
NaN |
0 |
0 |
NULL |
NULL |
Rückgabedatentyp
FLOAT64
Beispiel
SELECT CBRT(27) AS cube_root;
+--------------------+
| cube_root |
+--------------------+
| 3.0000000000000004 |
+--------------------+
CEIL
CEIL(X)
Beschreibung
Gibt den kleinsten Integralwert zurück, der nicht kleiner als X ist.
X | CEIL(X) |
---|---|
2.0 | 2,0 |
2,3 | 3,0 |
2,8 | 3,0 |
2,5 | 3,0 |
-2,3 | -2,0 |
-2,8 | -2,0 |
-2,5 | -2,0 |
0 | 0 |
+inf |
+inf |
-inf |
-inf |
NaN |
NaN |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
CEILING
CEILING(X)
Beschreibung
Synonym von CEIL(X)
COS
COS(X)
Beschreibung
Berechnet den Kosinus von X, wobei X als Radiant angegeben wird. Schlägt niemals fehl.
X | COS(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
COSH
COSH(X)
Beschreibung
Berechnet den hyperbolischen Kosinus von X, wobei X als Radiant angegeben wird. Erzeugt einen Fehler, wenn ein Überlauf auftritt.
X | COSH(X) |
---|---|
+inf |
+inf |
-inf |
+inf |
NaN |
NaN |
COT
COT(X)
Beschreibung
Berechnet den Kotangens für den Winkel X
, wobei X
in Radiant angegeben wird.
X
kann ein beliebiger Datentyp sein, der in FLOAT64
umgewandelt wird.
Unterstützt das Präfix SAFE.
.
X | COT(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
0 |
Error |
NULL |
NULL |
Rückgabedatentyp
FLOAT64
Beispiel
SELECT COT(1) AS a, SAFE.COT(0) AS b;
+---------------------+------+
| a | b |
+---------------------+------+
| 0.64209261593433065 | NULL |
+---------------------+------+
COTH
COTH(X)
Beschreibung
Berechnet den hyperbolischen Kotangens für den Winkel X
, wobei X
in Radiant angegeben wird. X
kann ein beliebiger Datentyp sein, der in FLOAT64
umgewandelt wird.
Unterstützt das Präfix SAFE.
.
X | COTH(X) |
---|---|
+inf |
1 |
-inf |
-1 |
NaN |
NaN |
0 |
Error |
NULL |
NULL |
Rückgabedatentyp
FLOAT64
Beispiel
SELECT COTH(1) AS a, SAFE.COTH(0) AS b;
+----------------+------+
| a | b |
+----------------+------+
| 1.313035285499 | NULL |
+----------------+------+
CSC
CSC(X)
Beschreibung
Berechnet die Kosekante des Eingangswinkels, der in Radiant angegeben wird.
X
kann ein beliebiger Datentyp sein, der in FLOAT64
umgewandelt wird.
Unterstützt das Präfix SAFE.
.
X | CSC(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
0 |
Error |
NULL |
NULL |
Rückgabedatentyp
FLOAT64
Beispiel
SELECT CSC(100) AS a, CSC(-1) AS b, SAFE.CSC(0) AS c;
+----------------+-----------------+------+
| a | b | c |
+----------------+-----------------+------+
| -1.97485753142 | -1.188395105778 | NULL |
+----------------+-----------------+------+
CSCH
CSCH(X)
Beschreibung
Berechnet die hyperbolische Kosekante des Eingangswinkels, der in Radiant angegeben wird.
X
kann ein beliebiger Datentyp sein, der in FLOAT64
umgewandelt wird.
Unterstützt das Präfix SAFE.
.
X | CSCH(X) |
---|---|
+inf |
0 |
-inf |
0 |
NaN |
NaN |
0 |
Error |
NULL |
NULL |
Rückgabedatentyp
FLOAT64
Beispiel
SELECT CSCH(0.5) AS a, CSCH(-2) AS b, SAFE.CSCH(0) AS c;
+----------------+----------------+------+
| a | b | c |
+----------------+----------------+------+
| 1.919034751334 | -0.27572056477 | NULL |
+----------------+----------------+------+
DIV
DIV(X, Y)
Beschreibung
Gibt das Ergebnis der Ganzzahldivision von X durch Y zurück. Die Division durch null gibt einen Fehler zurück. Division durch -1 kann überlaufen.
X | J | DIV(X, Y) |
---|---|---|
20 | 4 | 5 |
12 | -7 | -1 |
20 | 3 | 6 |
0 | 20 | 0 |
20 | 0 | Fehler |
Rückgabedatentyp
Der Rückgabedatentyp wird durch die Argumenttypen mit der folgenden Tabelle bestimmt.
INPUT | INT64 | NUMERIC | BIGNUMERIC |
---|---|---|---|
INT64 | INT64 | NUMERIC | BIGNUMERIC |
NUMERIC | NUMERIC | NUMERIC | BIGNUMERIC |
BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | BIGNUMERIC |
EXP
EXP(X)
Beschreibung
Potenziert e mit X, was auch als natürliche Exponentialfunktion bezeichnet wird. Bei einem Unterlauf des Ergebnisses gibt diese Funktion eine Null zurück. Erzeugt einen Fehler, wenn ein Überlauf des Ergebnisses auftritt.
X | EXP(X) |
---|---|
0,0 | 1,0 |
+inf |
+inf |
-inf |
0,0 |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
FLOOR
FLOOR(X)
Beschreibung
Gibt den größten Integralwert zurück, der nicht größer als X ist.
X | FLOOR(X) |
---|---|
2,0 | 2,0 |
2,3 | 2.0 |
2,8 | 2.0 |
2,5 | 2.0 |
-2,3 | -3,0 |
-2,8 | -3,0 |
-2,5 | -3,0 |
0 | 0 |
+inf |
+inf |
-inf |
-inf |
NaN |
NaN |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
GREATEST
GREATEST(X1,...,XN)
Beschreibung
Gibt den größten Wert unter X1,...,XN
zurück. Wenn eines der Argumente NULL
ist, wird NULL
zurückgegeben. Andernfalls wird bei Gleitkommaargumenten NaN
zurückgegeben, wenn eines der Argumente NaN
ist. In allen anderen Fällen wird der Wert unter X1,...,XN
zurückgegeben, der den größten Wert gemäß der von der ORDER BY
-Klausel verwendeten Reihenfolge hat. Die Argumente X1, ..., XN
müssen zu einem gemeinsamen Supertyp gezwungen werden können und der Supertyp muss die Sortierung unterstützen.
X1,...,XN | GREATEST(X1,...,XN) |
---|---|
3,5,1 | 5 |
Diese Funktion unterstützt die Angabe der Sortierung.
Rückgabedatentypen
Der Datentyp der Eingabewerte.
IEEE_DIVIDE
IEEE_DIVIDE(X, Y)
Beschreibung
Dividiert X durch Y. Diese Funktion schlägt nie fehl. Gibt FLOAT64
zurück. Erzeugt im Gegensatz zum Divisionsoperator (/) keinen Fehler für die Division durch null oder Überlauf.
X | J | IEEE_DIVIDE(X, Y) |
---|---|---|
20.0 | 4.0 | 5,0 |
0,0 | 25.0 | 0,0 |
25.0 | 0,0 | +inf |
-25.0 | 0,0 | -inf |
0,0 | 0,0 | NaN |
0,0 | NaN |
NaN |
NaN |
0.0 | NaN |
+inf |
+inf |
NaN |
-inf |
-inf |
NaN |
IS_INF
IS_INF(X)
Beschreibung
Gibt TRUE
zurück, wenn der Wert positiv oder negativ unendlich ist.
X | IS_INF(X) |
---|---|
+inf |
TRUE |
-inf |
TRUE |
25 | FALSE |
IS_NAN
IS_NAN(X)
Beschreibung
Gibt TRUE
zurück, wenn der Wert ein NaN
-Wert ist.
X | IS_NAN(X) |
---|---|
NaN |
TRUE |
25 | FALSE |
LEAST
LEAST(X1,...,XN)
Beschreibung
Gibt den kleinsten Wert unter X1,...,XN
zurück. Wenn eines der Argumente NULL
ist, wird NULL
zurückgegeben. Andernfalls wird bei Gleitkommaargumenten NaN
zurückgegeben, wenn eines der Argumente NaN
ist. In allen anderen Fällen wird der Wert unter X1,...,XN
zurückgegeben, der den größten Wert gemäß der von der ORDER BY
-Klausel verwendeten Reihenfolge hat. Die Argumente X1, ..., XN
müssen zu einem gemeinsamen Supertyp gezwungen werden können und der Supertyp muss die Sortierung unterstützen.
X1,...,XN | LEAST(X1,...,XN) |
---|---|
3,5,1 | 1 |
Diese Funktion unterstützt die Angabe der Sortierung.
Rückgabedatentypen
Der Datentyp der Eingabewerte.
LN
LN(X)
Beschreibung
Berechnet den natürlichen Logarithmus von X. Generiert einen Fehler, wenn X kleiner als oder gleich null ist.
X | LN(X) |
---|---|
1,0 | 0,0 |
+inf |
+inf |
X < 0 |
Fehler |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
LOG
LOG(X [, Y])
Beschreibung
Wenn nur X vorhanden ist, dann ist LOG
ein Synonym für LN
. Ist Y ebenfalls vorhanden, berechnet LOG
den Logarithmus von X zur Basis Y.
X | J | LOG(X, Y) |
---|---|---|
100,0 | 10,0 | 2.0 |
-inf |
Beliebiger Wert | NaN |
Beliebiger Wert | +inf |
NaN |
+inf |
0.0 < Y < 1.0 | -inf |
+inf |
Y > 1,0 | +inf |
X <= 0 | Beliebiger Wert | Fehler |
Beliebiger Wert | Y <= 0 | Fehler |
Beliebiger Wert | 1,0 | Fehler |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
INT64 | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
NUMERIC | NUMERIC | NUMERIC | BIGNUMERIC | FLOAT64 |
BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | FLOAT64 |
FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 |
LOG10
LOG10(X)
Beschreibung
Ähnlich wie bei LOG
, berechnet den Logarithmus aber auf Basis 10.
X | LOG10(X) |
---|---|
100,0 | 2.0 |
-inf |
NaN |
+inf |
+inf |
X <= 0 | Fehler |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
MOD
MOD(X, Y)
Beschreibung
Modulo-Funktion: gibt den Rest der Division von X durch Y zurück. Der zurückgegebene Wert hat dasselbe Vorzeichen wie X. Wenn Y gleich 0 ist, wird ein Fehler ausgegeben.
X | J | MOD(X, Y) |
---|---|---|
25 | 12 | 1 |
25 | 0 | Fehler |
Rückgabedatentyp
Der Rückgabedatentyp wird durch die Argumenttypen mit der folgenden Tabelle bestimmt.
INPUT | INT64 | NUMERIC | BIGNUMERIC |
---|---|---|---|
INT64 | INT64 | NUMERIC | BIGNUMERIC |
NUMERIC | NUMERIC | NUMERIC | BIGNUMERIC |
BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | BIGNUMERIC |
POW
POW(X, Y)
Beschreibung
Gibt den Wert X zurück, der mit Y potenziert wird. Wenn das Ergebnis unterläuft und nicht darstellbar ist, gibt die Funktion den Wert null zurück.
X | J | POW(X, Y) |
---|---|---|
2.0 | 3,0 | 8.0 |
1,0 | Beliebiger Wert, einschließlich NaN |
1,0 |
Beliebiger Wert, einschließlich NaN |
0 | 1,0 |
-1,0 | +inf |
1,0 |
-1,0 | -inf |
1,0 |
ABS (X) < 1 | -inf |
+inf |
ABS (X) > 1 | -inf |
0,0 |
ABS (X) < 1 | +inf |
0,0 |
ABS (X) > 1 | +inf |
+inf |
-inf |
Y < 0 | 0,0 |
-inf |
Y > 0 | -inf , wenn Y eine ungerade Ganzzahl ist, sonst +inf |
+inf |
Y < 0 | 0 |
+inf |
Y > 0 | +inf |
Endlicher Wert < 0 | Keine Ganzzahl | Fehler |
0 | Endlicher Wert < 0 | Fehler |
Rückgabedatentyp
Der Rückgabedatentyp wird durch die Argumenttypen mit der folgenden Tabelle bestimmt.
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
INT64 | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
NUMERIC | NUMERIC | NUMERIC | BIGNUMERIC | FLOAT64 |
BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | FLOAT64 |
FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 |
POWER
POWER(X, Y)
Beschreibung
Synonym für POW(X, Y)
.
RAND
RAND()
Beschreibung
Erzeugt einen Pseudozufallswert vom Typ FLOAT64
im Bereich [0, 1), einschließlich 0 und exklusive 1.
RANGE_BUCKET
RANGE_BUCKET(point, boundaries_array)
Beschreibung
RANGE_BUCKET
scannt ein sortiertes Array und gibt die 0-basierte Position der oberen Grenze des Punkts zurück. Dies kann nützlich sein, wenn Sie Ihre Daten gruppieren müssen, um Partitionen, Histogramme, unternehmensspezifische Regeln usw. zu erstellen.
RANGE_BUCKET
folgt diesen Regeln:
Wenn der Punkt im Array vorhanden ist, wird der Index des nächstgrößeren Werts zurückgegeben.
RANGE_BUCKET(20, [0, 10, 20, 30, 40]) -- 3 is return value RANGE_BUCKET(20, [0, 10, 20, 20, 40, 40]) -- 4 is return value
Wenn der Punkt nicht im Array vorhanden ist, aber zwischen zwei Werten liegt, wird der Index des größeren Werts zurückgegeben.
RANGE_BUCKET(25, [0, 10, 20, 30, 40]) -- 3 is return value
Wenn der Punkt kleiner als der erste Wert im Array ist, wird 0 zurückgegeben.
RANGE_BUCKET(-10, [5, 10, 20, 30, 40]) -- 0 is return value
Wenn der Punkt größer oder gleich dem letzten Wert im Array ist, wird die Länge des Arrays zurückgegeben.
RANGE_BUCKET(80, [0, 10, 20, 30, 40]) -- 5 is return value
Wenn das Array leer ist, wird 0 zurückgegeben.
RANGE_BUCKET(80, []) -- 0 is return value
Wenn der Punkt
NULL
oderNaN
ist, wirdNULL
zurückgegeben.RANGE_BUCKET(NULL, [0, 10, 20, 30, 40]) -- NULL is return value
Der Datentyp für den Punkt und das Array muss kompatibel sein.
RANGE_BUCKET('a', ['a', 'b', 'c', 'd']) -- 1 is return value RANGE_BUCKET(1.2, [1, 1.2, 1.4, 1.6]) -- 2 is return value RANGE_BUCKET(1.2, [1, 2, 4, 6]) -- execution failure
Ein Ausführungsfehler tritt in folgenden Fällen auf:
Das Array enthält einen
NaN
- oderNULL
-Wert.RANGE_BUCKET(80, [NULL, 10, 20, 30, 40]) -- execution failure
Das Array ist nicht in aufsteigender Reihenfolge sortiert.
RANGE_BUCKET(30, [10, 30, 20, 40, 50]) -- execution failure
Parameter
point
: Ein generischer Wert.boundaries_array
: Ein generisches Array von Werten.
Rückgabewert
INT64
Beispiele
Prüfen Sie in einer Tabelle mit dem Namen students
, wie viele Datensätze in jedem age_group
-Bucket auf Basis des Alters eines Schülers/Studenten vorhanden wären:
- age_group 0 (Alter < 10)
- age_group 1 (Alter >= 10, Alter < 20)
- age_group 2 (Alter >= 20, Alter < 30)
- age_group 3 (Alter >= 30)
WITH students AS
(
SELECT 9 AS age UNION ALL
SELECT 20 AS age UNION ALL
SELECT 25 AS age UNION ALL
SELECT 31 AS age UNION ALL
SELECT 32 AS age UNION ALL
SELECT 33 AS age
)
SELECT RANGE_BUCKET(age, [10, 20, 30]) AS age_group, COUNT(*) AS count
FROM students
GROUP BY 1
+--------------+-------+
| age_group | count |
+--------------+-------+
| 0 | 1 |
| 2 | 2 |
| 3 | 3 |
+--------------+-------+
ROUND
ROUND(X [, N] [, rounding_mode])
Beschreibung
Wenn nur X vorhanden ist, wird X auf die nächste Ganzzahl gerundet. Wenn N vorhanden ist, wird X auf N Stellen nach dem Dezimalzeichen gerundet. Wenn N negativ ist, werden Ziffern links vom Dezimalzeichen abgerundet. Rundet halbe Zahlen von null weg. Erzeugt einen Fehler, wenn ein Überlauf auftritt.
Wenn X ein NUMERIC
- oder BIGNUMERIC
-Typ ist, können Sie rounding_mode
(Preview)
explizit auf einen der folgenden Werte festlegen:
"ROUND_HALF_AWAY_FROM_ZERO"
: (Standardeinstellung) Rundet halbe Zahlen von null weg."ROUND_HALF_EVEN"
: Rundet halbe Zahlen auf die nächste gerade Zahl.
Wenn Sie den rounding_mode
festlegen und X kein NUMERIC
- oder BIGNUMERIC
-Typ ist, erzeugt die Funktion einen Fehler.
Ausdruck | Rückgabewert |
---|---|
ROUND(2.0) |
2.0 |
ROUND(2.3) |
2,0 |
ROUND(2.8) |
3.0 |
ROUND(2.5) |
3.0 |
ROUND(-2.3) |
-2,0 |
ROUND(-2.8) |
-3,0 |
ROUND(-2.5) |
-3,0 |
ROUND(0) |
0 |
ROUND(+inf) |
+inf |
ROUND(-inf) |
-inf |
ROUND(NaN) |
NaN |
ROUND(123.7, -1) |
120,0 |
ROUND(1.235, 2) |
1.24 |
ROUND(NUMERIC "2.25", 1, "ROUND_HALF_EVEN") |
2,2 |
ROUND(NUMERIC "2.35", 1, "ROUND_HALF_EVEN") |
2.4 |
ROUND(NUMERIC "2.251", 1, "ROUND_HALF_EVEN") |
2,3 |
ROUND(NUMERIC "-2.5", 0, "ROUND_HALF_EVEN") |
-2 |
ROUND(NUMERIC "2.5", 0, "ROUND_HALF_AWAY_FROM_ZERO") |
3 |
ROUND(NUMERIC "-2.5", 0, "ROUND_HALF_AWAY_FROM_ZERO") |
-3 |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
SAFE_ADD
SAFE_ADD(X, Y)
Beschreibung
Entspricht dem Additionsoperator (+
), gibt jedoch NULL
zurück, wenn ein Überlauf auftritt.
X | J | SAFE_ADD(X, Y) |
---|---|---|
5 | 4 | 9 |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
INT64 | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
NUMERIC | NUMERIC | NUMERIC | BIGNUMERIC | FLOAT64 |
BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | FLOAT64 |
FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 |
SAFE_DIVIDE
SAFE_DIVIDE(X, Y)
Beschreibung
Entspricht dem Divisionsoperator (X / Y
), gibt jedoch NULL
zurück, wenn ein Fehler auftritt, beispielsweise bei einer Division durch null.
X | J | SAFE_DIVIDE(X, Y) |
---|---|---|
20 | 4 | 5 |
0 | 20 | 0 |
20 | 0 | NULL |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
INT64 | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
NUMERIC | NUMERIC | NUMERIC | BIGNUMERIC | FLOAT64 |
BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | FLOAT64 |
FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 |
SAFE_MULTIPLY
SAFE_MULTIPLY(X, Y)
Beschreibung
Entspricht dem Multiplikationsoperator (*
), gibt jedoch NULL
zurück, wenn ein Überlauf auftritt.
X | J | SAFE_MULTIPLY(X, Y) |
---|---|---|
20 | 4 | 80 |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
INT64 | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
NUMERIC | NUMERIC | NUMERIC | BIGNUMERIC | FLOAT64 |
BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | FLOAT64 |
FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 |
SAFE_NEGATE
SAFE_NEGATE(X)
Beschreibung
Entspricht dem Unäres-Minus-Operator (-
), gibt jedoch NULL
zurück, wenn ein Überlauf auftritt.
X | SAFE_NEGATE(X) |
---|---|
+1 | -1 |
-1 | +1 |
0 | 0 |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
SAFE_SUBTRACT
SAFE_SUBTRACT(X, Y)
Beschreibung
Gibt das Ergebnis von X minus Y zurück.
Entspricht dem Subtraktionsoperator (-
), gibt jedoch NULL
zurück, wenn ein Überlauf auftritt.
X | J | SAFE_SUBTRACT(X, Y) |
---|---|---|
5 | 4 | 1 |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
INT64 | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
NUMERIC | NUMERIC | NUMERIC | BIGNUMERIC | FLOAT64 |
BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | BIGNUMERIC | FLOAT64 |
FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 | FLOAT64 |
SEC
SEC(X)
Beschreibung
Berechnet die Sekante für den Winkel X
, wobei X
in Radiant angegeben wird.
X
kann ein beliebiger Datentyp sein, der in FLOAT64
umgewandelt wird.
X | SEC(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
NULL |
NULL |
Rückgabedatentyp
FLOAT64
Beispiel
SELECT SEC(100) AS a, SEC(-1) AS b;
+----------------+---------------+
| a | b |
+----------------+---------------+
| 1.159663822905 | 1.85081571768 |
+----------------+---------------+
SECH
SECH(X)
Beschreibung
Berechnet den Kotangens für den Winkel X
, wobei X
in Radiant angegeben wird. X
kann ein beliebiger Datentyp sein, der in FLOAT64
umgewandelt wird.
Erzeugt nie einen Fehler.
X | SECH(X) |
---|---|
+inf |
0 |
-inf |
0 |
NaN |
NaN |
NULL |
NULL |
Rückgabedatentyp
FLOAT64
Beispiel
SELECT SECH(0.5) AS a, SECH(-2) AS b, SECH(100) AS c;
+----------------+----------------+---------------------+
| a | b | c |
+----------------+----------------+---------------------+
| 0.88681888397 | 0.265802228834 | 7.4401519520417E-44 |
+----------------+----------------+---------------------+
SIGN
SIGN(X)
Beschreibung
Gibt -1
, 0
oder +1
für negative, Null- bzw. positive Argumente zurück. Bei Gleitkommaargumenten unterscheidet diese Funktion nicht zwischen positiv und negativ null.
X | SIGN(X) |
---|---|
25 | +1 |
0 | 0 |
-25 | -1 |
NaN | NaN |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
SIN
SIN(X)
Beschreibung
Berechnet den Sinus von X, wobei X als Radiant angegeben wird. Schlägt niemals fehl.
X | SIN(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
SINH
SINH(X)
Beschreibung
Berechnet den hyperbolischen Sinus von X, wobei X als Radiant angegeben wird. Erzeugt einen Fehler, wenn ein Überlauf auftritt.
X | SINH(X) |
---|---|
+inf |
+inf |
-inf |
-inf |
NaN |
NaN |
SQRT
SQRT(X)
Beschreibung
Berechnet die Quadratwurzel aus X. Generiert einen Fehler, wenn X kleiner als 0 ist.
X | SQRT(X) |
---|---|
25.0 |
5.0 |
+inf |
+inf |
X < 0 |
Fehler |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
TAN
TAN(X)
Beschreibung
Berechnet den Tangens von X, wobei X als Radiant angegeben wird. Erzeugt einen Fehler, wenn das Ergebnis überläuft.
X | TAN(X) |
---|---|
+inf |
NaN |
-inf |
NaN |
NaN |
NaN |
TANH
TANH(X)
Beschreibung
Berechnet den hyperbolischen Tangens von X, wobei X als Radiant angegeben wird. Schlägt nie fehl.
X | TANH(X) |
---|---|
+inf |
1,0 |
-inf |
-1,0 |
NaN |
NaN |
TRUNC
TRUNC(X [, N])
Beschreibung
Wenn nur X vorhanden ist, rundet TRUNC
X auf die nächste Ganzzahl, deren absoluter Wert nicht größer als der absolute Wert von X ist. Wenn N ebenfalls vorhanden ist, verhält sich TRUNC
wie ROUND(X, N)
, rundet aber immer gegen null und läuft nie über.
X | TRUNC(X) |
---|---|
2.0 | 2,0 |
2,3 | 2.0 |
2,8 | 2.0 |
2,5 | 2.0 |
-2,3 | -2,0 |
-2,8 | -2,0 |
-2,5 | -2,0 |
0 | 0 |
+inf |
+inf |
-inf |
-inf |
NaN |
NaN |
Rückgabedatentyp
INPUT | INT64 | NUMERIC | BIGNUMERIC | FLOAT64 |
---|---|---|---|---|
OUTPUT | FLOAT64 | NUMERIC | BIGNUMERIC | FLOAT64 |