全部產品
Search
文件中心

Simple Log Service:數學計算函數

更新時間:Sep 12, 2026

本文介紹數學計算函數的基本文法和樣本。

Log Service支援如下數學計算函數。

說明
  • 支援如下運算子:

    +-*/%

    其中,使用運算子/時,預設不保留小數部分。您可通過x*1.0/y運算,保留小數部分。

  • 在Log Service分析語句中,表示字串的字元必須使用單引號('')包裹,無符號包裹或被雙引號("")包裹的字元表示欄位名或列名。例如:'status'表示字串status,status或"status"表示日誌欄位status。

函數名稱

文法

說明

支援SQL

支援SPL

abs函數

abs(x)

計算x的絕對值。

√

√

acos函數

acos(x)

計算x的反餘弦。

√

√

asin函數

asin(x)

計算x的反正弦。

√

√

atan函數

atan(x)

計算x的反正切。

√

√

atan2函數

atan2(x, y)

計算x和y相除的結果的反正切。

√

√

cbrt函數

cbrt(x)

計算x的立方根。

√

√

ceil函數

ceil(x)

對x進行向上取整數。

ceil函數是ceiling函數的別名。

√

√

ceiling函數

ceiling(x)

對x進行向上取整數。

√

√

cos函數

cos(x)

計算x的餘弦。

√

√

cosh函數

cosh(x)

計算x的雙曲餘弦。

√

√

cosine_similarity函數

cosine_similarity(x, y)

計算x和y之間的餘弦相似性。

√

×

degrees函數

degrees(x)

將弧度轉換為度。

√

√

e函數

e()

返回自然底數e的值。

√

√

exp函數

exp(x)

計算自然底數e的x次冪。

√

×

floor函數

floor(x)

對x進行向下取整數。

√

√

from_base函數

from_base(x, y)

根據BASE編碼將x轉為y進位的數字。

√

√

ln函數

ln(x)

計算x的自然對數。

√

√

infinity函數

infinity()

返回正無窮的數值。

√

√

is_nan函數

is_nan(x)

判斷x是否為NaN。

√

√

log2函數

log2(x)

計算x以2為底的對數。

√

√

log10函數

log10(x)

計算x以10為底的對數。

√

√

log函數

log(x, y)

計算x以y為底的對數。

√

×

mod函數

mod(x, y)

計算x與y相除的餘數。

√

√

nan函數

nan()

返回一個NaN值。

√

√

pi函數

pi()

返回π值,精確到小數點後15位。

√

√

pow函數

pow(x, y)

計算x的y次冪。

pow函數是power函數的別名。

√

√

power函數

power(x, y)

計算x的y次冪。

√

√

radians函數

radians(x)

將度轉換為弧度。

√

√

rand函數

rand()

返回隨機數。

√

√

random函數

random()

返回[0,1)之間的隨機數。

√

√

random(x)

返回[0,x)之間的隨機數。

√

√

round函數

round(x)

對x進行四捨五入取整數。

√

√

round(x, n)

對x進行四捨五入且保留n位小數。

√

√

sign函數

sign(x)

返回x的符號,通過1、0、-1表示。

√

×

sin函數

sin(x)

計算x的正弦。

√

√

sqrt函數

sqrt(x)

計算x的平方根。

√

√

tan函數

tan(x)

計算x的正切。

√

√

tanh函數

tanh(x)

計算x的雙曲正切。

√

√

to_base函數

to_base(x, y)

根據BASE編碼將x轉為y進位的字串。

√

×

truncate函數

truncate(x)

截斷x的小數部分。

√

√

width_bucket函數

width_bucket(x, bound1, bound2, numBuckets)

將一段數值範圍劃分成大小相同的多個Bucket,然後返回x所屬的Bucket。

√

×

width_bucket(x, bins)

使用數組指定Bucket的範圍,然後返回x所屬的Bucket。

√

×

abs函數

abs函數用於計算x的絕對值。

文法

abs(x)

參數說明

參數

說明

x

參數值為smallint類型、integer類型、real類型、tinyint類型、bigint類型、double類型或decimal類型。

傳回值類型

與參數值的類型一致。

樣本

計算-25的絕對值。

  • 查詢和分析語句

    * | select abs(-25)
  • 查詢和分析結果:傳回值為 25。

acos函數

acos函數用於計算x的反餘弦。

文法

acos(x)

參數說明

參數

說明

x

參數值為double類型,取值範圍為[-1,1]。

如果超出[-1,1],則返回NaN。

傳回值類型

double類型。

樣本

計算45°角的反餘弦。

  • 查詢和分析語句

    * | SELECT acos(pi()/4)
  • 查詢和分析結果:傳回值為 0.6674572160283838。

asin函數

asin函數用於計算x的反正弦。

文法

asin(x)

參數說明

參數

說明

x

參數值為double類型,取值範圍為[-1,1]。

如果超出[-1,1],則返回NaN。

傳回值類型

double類型。

樣本

計算45°角的反正弦。

  • 查詢和分析語句

    * | SELECT  asin(pi()/4)
  • 查詢和分析結果:傳回值為 0.6674572160283838。

atan函數

atan函數用於計算x的反正切。

文法

atan(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算45°角的反正切。

  • 查詢和分析語句

    * | SELECT atan(pi()/4)
  • 查詢和分析結果:傳回值為 0.6657737500283538。

atan2函數

atan2函數用於計算x和y相除的結果的反正切。

文法

atan2(x, y)

參數說明

參數

說明

x

參數值為double類型。

y

參數值為double類型。

傳回值類型

double類型。

樣本

計算30°角的反正切。

  • 查詢和分析語句

    * | SELECT atan2(pi(),6)
  • 查詢和分析結果:傳回值為 0.48234790710102495。

cbrt函數

cbrt函數用於計算x的立方根。

文法

cbrt(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算100的立方根。

  • 查詢和分析語句

    * | select cbrt(100)
  • 查詢和分析結果:傳回值為 4.641588833612779。

ceil函數

ceil函數用於對x進行向上取整數。ceil函數是ceiling函數的別名。

文法

ceil(x)

參數說明

參數

說明

x

參數值為tinyint、smallint、integer、real、bigint、double、decimal類型 。

  • x為正數,則朝遠離0的方向取整。

  • x為負數,則朝向0的方向取整。

傳回值類型

與參數值的類型一致。

樣本

對request_time欄位的值進行向上取整數。

  • 欄位範例

    request_time:9.3
  • 查詢和分析語句

    * | SELECT ceil(request_time) AS request_time
  • 查詢和分析結果:request_time 列的值為 10.0。

ceiling函數

ceiling函數用於對x進行向上取整數。

文法

ceiling(x)

參數說明

參數

說明

x

參數值為tinyint、smallint、integer、real、bigint、double、decimal類型 。

  • x為正數,則朝遠離0的方向取整。

  • x為負數,則朝向0的方向取整。

傳回值類型

與參數值的類型一致。

樣本

對request_time欄位的值進行向上取整數。

  • 欄位範例

    request_time:9.3
  • 查詢和分析語句

    * | SELECT ceiling(request_time) AS request_time
  • 查詢和分析結果:request_time 列的值為 10.0。

cos函數

cos函數用於計算x的餘弦。

文法

cos(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算30°角的餘弦。

  • 查詢和分析語句

    * | SELECT cos(pi()/6)
  • 查詢和分析結果:傳回值為 0.8660254037844387。

cosh函數

cosh函數用於計算x的雙曲餘弦。

文法

cosh(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算30°角的雙曲餘弦。

  • 查詢和分析語句

    * | SELECT cosh(pi()/6)
  • 查詢和分析結果:傳回值為 1.1402383210764287。

cosine_similarity函數

cosine_similarity函數用於計算x和y之間的餘弦相似性。

文法

cosine_similarity(x, y)

參數說明

參數

說明

x

參數值為map(varchar,double)類型。

y

參數值為map(varchar,double)類型。

傳回值類型

double類型。

樣本

計算兩個向量之間的餘弦相似性。

  • 查詢和分析語句

    * | SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0]))
  • 查詢和分析結果:傳回值為 1.0。

degrees函數

degrees函數用於將弧度轉換為度。

文法

degrees(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

將弧度π轉換為度。

  • 查詢和分析語句

    * | SELECT degrees(pi())
  • 查詢和分析結果:傳回值為 180.0。

e函數

e函數用於返回自然底數e的值。

文法

e()

傳回值類型

double類型。

樣本

返回自然底數e的值。

  • 查詢和分析語句

    * | SELECT e()
  • 查詢和分析結果:傳回值為 2.718281828459045。

exp函數

exp函數用於計算自然底數e的x次冪。

文法

exp(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算自然底數e的3次冪。

  • 查詢和分析語句

    * | SELECT exp(3)
  • 查詢和分析結果:傳回值為 20.085536923187669。

floor函數

floor函數用於對x進行向下取整數。

文法

floor(x)

參數說明

參數

說明

x

參數值為tinyint、smallint、integer、real、bigint、double、decimal類型 。

  • x為正數,則朝向0的方向取整。

  • x為負數,則朝遠離0的方向取整。

傳回值類型

double類型。

樣本

對request_time欄位的值進行向下取整數。

  • 欄位範例

    request_time:10.3
  • 查詢和分析語句

    * | SELECT floor(request_time) AS request_time
  • 查詢和分析結果:request_time 列的值為 10.0。

from_base函數

from_base函數返回將字串x以y進位解釋得到的數值。

文法

from_base(x, y)

參數說明

參數

說明

x

參數值為varchar類型。

y

參數值為bigint類型。進位,取值範圍為[2,36]。

傳回值類型

bigint類型。

樣本

將字串1101轉換為數字。

  • 查詢和分析語句

    * | SELECT  from_base('1101',2)
  • 查詢和分析結果:傳回值為 13。

ln函數

ln函數用於計算x的自然對數。

文法

ln(x)

參數說明

參數

說明

x

參數值為double類型且大於0。

傳回值類型

double類型。

樣本

計算2的自然對數。

  • 查詢和分析語句

    * | SELECT ln(2)
  • 查詢和分析結果:傳回值為 0.6931471805599453。

infinity函數

infinity函數用於返回正無窮的數值。

文法

infinity()

傳回值類型

double類型。

樣本

用於返回正無窮的數值。

  • 查詢和分析語句

    * | SELECT infinity()
  • 查詢和分析結果:傳回值為 Infinity。

is_nan函數

is_nan函數用於判斷x是否為NaN。如果是,則返回true。

文法

is_nan(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

boolean類型。

樣本

判斷status欄位的值是否為NaN。

  • 查詢和分析語句

    * | SELECT is_nan(status)
  • 查詢和分析結果:傳回值為 false。

log2函數

log2函數用於計算x以2為底的對數。

文法

log2(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算100以2為底的對數。

  • 查詢和分析語句

    * | SELECT log2(100)
  • 查詢和分析結果:傳回值為 6.643856189774725。

log10函數

log10函數用於計算x以10為底的對數。

文法

log10(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算100以10為底的對數。

  • 查詢和分析語句

    * | SELECT log10(100)
  • 查詢和分析結果:傳回值為 2.0。

log函數

log函數用於計算x以y為底數的對數。

文法

log(x, y)

參數說明

參數

說明

x

參數值為double類型。

y

參數值為double類型。

傳回值類型

double類型。

樣本

計算100以5為底數的對數。

  • 查詢和分析語句

    * | SELECT log(100,5)
  • 查詢和分析結果:傳回值為 2.8265747590288146。

mod函數

mod函數用於計算x與y相除的餘數。

文法

mod(x, y)

參數說明

參數

說明

x

參數值為tinyint、smallint、integer、real、bigint、double、decimal類型。

y

參數值為tinyint、smallint、integer、real、bigint、double、decimal類型。

傳回值類型

與參數值的資料類型一致。

樣本

計算100與30相除的餘數。

  • 查詢和分析語句

    * | SELECT mod(100,30)
  • 查詢和分析結果:傳回值為 10。

nan函數

nan函數用於返回一個NaN值(Not a Number)。

文法

nan()

傳回值類型

double類型。

樣本

返回一個NaN值。

  • 查詢和分析語句

    * | SELECT nan()
  • 查詢和分析結果:傳回值為 NaN。

pi函數

pi函數用於返回π值,精確到小數點後15位。

文法

pi()

傳回值類型

double類型。

樣本

返回π值,精確到小數點後15位。

  • 查詢和分析語句

    * | SELECT pi()
  • 查詢和分析結果:傳回值為 3.141592653589793。

pow函數

pow函數用於計算x的y次冪。pow函數是power函數的別名。

文法

pow(x, y)

參數說明

參數

說明

x

參數值為double類型。

y

參數值為double類型。

傳回值類型

double類型。

樣本

計算2的5次冪。

  • 查詢和分析語句

    * | SELECT pow(2,5)
  • 查詢和分析結果:傳回值為 32.0。

power函數

power用於計算x的y次冪。

文法

power(x, y)

參數說明

參數

說明

x

參數值為double類型。

y

參數值為double類型。

傳回值類型

double類型。

樣本

計算2的5次冪。

  • 查詢和分析語句

    * | SELECT power(2,5)
  • 查詢和分析結果:傳回值為 32.0。

radians函數

radians函數用於將度轉換為弧度。

文法

radians(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算180°對應的弧度。

  • 查詢和分析語句

    * | SELECT radians(180)
  • 查詢和分析結果:傳回值為 3.141592653589793。

rand函數

rand函數用於返回隨機數。

文法

rand()

傳回值類型

double類型。

樣本

返回一個隨機數。

  • 查詢和分析語句

    * | select rand()
  • 查詢和分析結果:返回一個隨機值,例如 0.8742241064002435。

random函數

random函數用於返回[0,x)之間的隨機數。

文法

  • 返回[0,1)之間的隨機數。

    random()
  • 返回[0,x)之間的隨機數。

    random(x)

參數說明

參數

說明

x

參數值為tinyint、smallint、integer或bigint類型。

傳回值類型

與參數值的類型一致。

樣本

返回[0,100)之間的隨機數。

  • 查詢和分析語句

    * | select random(100)
  • 查詢和分析結果:返回一個隨機整數,例如 44。

round函數

round函數用於對x進行四捨五入。如果n存在,則保留n位小數;如果n不存在,則對x進行四捨五入取整數。

文法

  • 對x進行四捨五入取整數。

    round(x)
  • 對x進行四捨五入且保留n位小數。

    round(x, n)

參數說明

參數

說明

x

參數值為tinyint、smallint、integer或bigint類型。

n

n位小數。

傳回值類型

與參數值的資料類型一致。

樣本

同比今天與昨天的訪問PV,並使用百分數表示。

  • 查詢和分析語句

    * | SELECT diff [1] AS today, round((diff [3] -1.0) * 100, 2) AS growth FROM (SELECT compare(pv, 86400) as diff FROM (SELECT COUNT(*) as pv FROM website_log))
  • 查詢和分析結果:today 列的值為 1564075.0,growth 列的值為 -22.11。

sign函數

sign函數用於返回x的符號,通過1、0、-1表示。

文法

sign(x)

參數說明

參數

說明

x

參數值為integer、smallint、tinyint、real、 double、bigint或decimal(p,s)類型。

  • x為正數,返回1。

  • x為0,返回0。

  • x為負數,返回-1。

傳回值類型

與參數值的資料類型一致。

樣本

計算數字10的符號。

  • 查詢和分析語句

    * | SELECT sign(10)
  • 查詢和分析結果:傳回值為 1。

sin函數

sin函數用於計算x的正弦。

文法

sin(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算90°角的正弦。

  • 查詢和分析語句

    * | select sin(pi()/2)
  • 查詢和分析結果:傳回值為 1.0。

sqrt函數

sqrt函數用於計算x的平方根。

文法

sqrt(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算100的平方根。

  • 查詢和分析語句

    * | select sqrt(100)
  • 查詢和分析結果:傳回值為 10.0。

tan函數

tan函數用於計算x的正切。

文法

tan(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算tan30°角的正切。

  • 查詢和分析語句

    * | SELECT tan(pi()/6)
  • 查詢和分析結果:傳回值為 0.5773502691896257。

tanh函數

tanh函數用於計算x的雙曲正切。

文法

tanh(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算30°的雙曲正切。

  • 查詢和分析語句

    * | SELECT tanh(pi()/6)
  • 查詢和分析結果:傳回值為 0.4804727781564516。

to_base函數

to_base函數將根據BASE編碼將x轉為y進位的字串。

文法

to_base(x, y)

參數說明

參數

說明

x

參數值為bigint類型。

y

參數值為bigint類型。進位,取值範圍為[2,36]。

傳回值類型

varchar類型。

樣本

將180轉換為二進位字串。

  • 查詢和分析語句

    * | SELECT  to_base(180, 2)
  • 查詢和分析結果:傳回值為 10110100。

truncate函數

truncate函數用於截斷x的小數部分。

文法

truncate(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

截斷11.11的小數部分。

  • 查詢和分析語句

    * | SELECT  truncate(11.11)
  • 查詢和分析結果:傳回值為 11.0。

width_bucket函數

width_bucket函數用於返回x所屬的Bucket。

文法

  • 將一段數值範圍劃分成大小相同的多個Bucket,然後返回x所屬的Bucket。

    width_bucket(x, bound1, bound2, numBuckets)
  • 使用數組指定Bucket的範圍,然後返回x所屬的Bucket。

    width_bucket(x, bins)

參數說明

參數

說明

x

參數值為double類型。

bound1

提供數值範圍的下限。

bound2

提供數值範圍的上限。

numBuckets

Bucket數量。大於0的整數。

bins

使用數組指定Bucket的範圍。bins為double類型的數組。

傳回值類型

bigint類型。

說明
  • x在指定範圍內,返回x的所屬的Bucket。

  • x在下限範圍外,返回0。

  • x在上限範圍外,返回numBuckets+1。

樣本

  • 樣本1:將[10,80)範圍等分為7個Bucket,然後返回request_time欄位的各個值所屬的Bucket。

    • 查詢和分析語句

      * | SELECT request_time, width_bucket(request_time, 10, 80,7) AS numBuckets
    • 查詢和分析結果:返回結果包含 request_time 和 numBuckets 兩列,顯示各請求時間對應的分桶編號,例如 request_time 為 26.0 時 numBuckets 為 2,request_time 為 49.0 時 numBuckets 為 4。

  • 樣本2:使用數組指定7個Bucket的範圍,然後返回request_time欄位的各個值所屬的Bucket。

    • 查詢和分析語句

      * | SELECT request_time, width_bucket(request_time, array[10,20,30,40,50,60,70,80]) AS numBuckets
    • 查詢和分析結果:返回結果包含 request_time 和 numBuckets 兩列,顯示各請求時間按自訂邊界數組分配的桶編號,例如 request_time 為 26.0 時 numBuckets 為 2,request_time 為 54.0 時 numBuckets 為 5。