# 数値関数

# plus

ab の和を計算します。

plus(a, b)

整数と日付または日時を加算することも可能です。前者の操作では日付の日数が増加し、後者の操作では日時の秒数が増加します。

エイリアス

a + b (演算子)

# minus

ab の差を計算します。結果は常に符号付きです。

plus と同様に、日付または日時から整数を引くことも可能です。

minus(a, b)

エイリアス

a - b (演算子)

# multiply

ab の積を計算します。

multiply(a, b)

エイリアス:

a * b (演算子)

# divide

ab の商を計算します。結果の型は常に Float64 (opens new window) です。整数の除算は intDiv 関数で提供されます。

divide(a, b)

0 での除算は infinf、または nan を返します。

エイリアス

a / b (演算子)

# exp

与えられた引数の e のべき乗を返します。

exp(x)

# log2

引数の二進対数を返します。

log2(x)

# log10

引数の十進対数を返します。

log10(x)

# cos

引数の余弦を返します。

cos(x)

# tan

引数の正接を返します。

tan(x)

# sin

引数の正弦を返します。

sin(x)

# sqrt

引数の平方根を返します。

sqrt(x)

# abs

aの絶対値を計算します。aが符号なしの型である場合は効果がありません。aが符号付きの型である場合、符号なしの数値を返します。

abs(a)

# floor

x以下の最大の整数を返します。丸められる数は1 / 10Nの倍数であり、1 / 10Nが正確でない場合は適切なデータ型の最も近い数値です。 'N'は整数定数であり、オプションのパラメータです。デフォルトではゼロであり、整数に丸めることを意味します。 'N'は負の値にすることもできます。

floor(x[, N])

xは任意の数値型です。結果は同じ型の数値です。整数の引数の場合、負のN値で丸めることが意味があります(非負のNの場合、関数は何もしません)。丸めによってオーバーフローが発生する場合(たとえば、floor(-128, -1))、実装固有の結果が返されます。

floor(123.45, 1) = 123.4, floor(123.45, -1) = 120

# ceil

x以上の最小の整数を返します。それ以外の点では、floor関数と同じです(上記参照)。

# round

値を指定された小数位数に丸めます。関数は指定された桁数の最も近い数値を返します。与えられた数が周囲の数と等しい距離を持つ場合、関数は浮動小数点数型では銀行家の丸めを使用し、他の数値型(Decimal)ではゼロから遠ざかるように丸めます。

round(expression [, decimal_places])

引数

  • expression — 丸める数値。数値データ型を返す任意の式であることができます。
  • decimal-places — 整数値。
    • decimal-places > 0の場合、関数は小数点の右側の値を丸めます。
    • decimal-places < 0の場合、関数は小数点の左側の値を丸めます。
    • decimal-places = 0の場合、関数は整数に丸めます。この場合、引数は省略できます。

返される値

入力数と同じ型の丸められた数値。

  • Floatと一緒に使用する場合

    SELECT number / 2 AS x, round(x) FROM system.numbers LIMIT 3
    
    ┌───x─┬─round(divide(number, 2))─┐
    │   00 │
    │ 0.50 │
    │   11 │
    └─────┴──────────────────────────┘
    
  • 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 │
    └─────┴──────────────────────────────────────────────────┘
    
  • 最も近い数値に丸める。

    round(3.2, 0) = 3
    round(4.1267, 2) = 4.13
    round(22,-1) = 20
    round(467,-2) = 500
    round(-467,-2) = -500
    
  • 銀行家の丸め。

    round(3.5) = 4
    round(4.5) = 4
    round(3.55, 1) = 3.6
    round(3.65, 1) = 3.6
    

# rand32

一様に分布するUInt32の乱数を返します。線形合同生成器を使用します。

# randNormal

正規分布 (opens new window)から引かれたランダムなFloat64を返します。

randNormal(mean, variance)

引数

  • mean - Float64 - 分布の平均値
  • variance - Float64 - 分布の分散

返される値

  • ランダムな数値
  • 型: Float64

SELECT randNormal(10, 2) FROM numbers(5)
┌──randNormal(10, 2)─┐
│ 13.389228911709653 │
│ 8.622949707401295  │
│ 10.801887062682981 │
│ 4.5220192605895315 │
│ 10.901239123982567 │
└────────────────────┘
Last Updated: Mon Apr 29 2024 08:19:07 GMT+0000