# 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.

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))─┐
    │   00 │
    │ 0.50 │
    │   11 │
    └─────┴──────────────────────────┘
    
  • 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)'))─┐
    │   00 │
    │ 0.51 │
    │   11 │
    └─────┴──────────────────────────────────────────────────┘
    
  • 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 │
└────────────────────┘
Last Updated: Tue Oct 08 2024 07:44:34 GMT+0000