全部產品
Search
文件中心

Simple Log Service:數學計算函數

更新時間:Jun 30, 2024

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

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)

計算xy相除的結果的反正切。

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)

計算xy之間的餘弦相似性。

×

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)

計算xy為底的對數。

×

mod函數

mod(x, y)

計算xy相除的餘數。

nan函數

nan()

返回一個NaN值。

pi函數

pi()

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

pow函數

pow(x, y)

計算xy次冪。

pow函數是power函數的別名。

power函數

power(x, y)

計算xy次冪。

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_bucke(x, bound1, bound2, numBuckets)

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

×

width_bucke(x, bins)

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

×

abs函數

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

文法

abs(x)

參數說明

參數

說明

x

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

傳回值類型

與參數值的類型一致。

樣本

計算-25的絕對值。

  • 查詢和分析語句

    * | select abs(-25)
  • 查詢和分析結果abs

acos函數

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

文法

acos(x)

參數說明

參數

說明

x

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

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

傳回值類型

double類型。

樣本

計算45°角的反餘弦。

  • 查詢和分析語句

    * | SELECT acos(pi()/4)
  • 查詢和分析結果acos

asin函數

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

文法

asin(x)

參數說明

參數

說明

x

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

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

傳回值類型

double類型。

樣本

計算45°角的反正弦。

  • 查詢和分析語句

    * | SELECT  asin(pi()/4)
  • 查詢和分析結果acos

atan函數

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

文法

atan(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算45°角的反正切。

  • 查詢和分析語句

    * | SELECT atan(pi()/4)
  • 查詢和分析結果atan

atan2函數

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

文法

atan2(x, y)

參數說明

參數

說明

x

參數值為double類型。

y

參數值為double類型。

傳回值類型

double類型。

樣本

計算30°角的反正切。

  • 查詢和分析語句

    * | SELECT atan2(pi(),6)
  • 查詢和分析結果atan2

cbrt函數

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

文法

cbrt(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算100的立方根。

  • 查詢和分析語句

    * | select cbrt(100)
  • 查詢和分析結果cbrt

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
  • 查詢和分析結果ceiling

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
  • 查詢和分析結果ceiling

cos函數

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

文法

cos(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算30°角的餘弦。

  • 查詢和分析語句

    * | SELECT cos(pi()/6)
  • 查詢和分析結果cos

cosh函數

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

文法

cosh(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算30°角的雙曲餘弦。

  • 查詢和分析語句

    * | SELECT cosh(pi()/6)
  • 查詢和分析結果cosh

cosine_similarity函數

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

文法

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]))
  • 查詢和分析結果cosine_similarity

degrees函數

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

文法

degrees(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

將弧度π轉換為度。

  • 查詢和分析語句

    * | SELECT degrees(pi())
  • 查詢和分析結果degrees

e函數

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

文法

e()

傳回值類型

double類型。

樣本

返回自然底數e的值。

  • 查詢和分析語句

    * | SELECT e()
  • 查詢和分析結果e()

exp函數

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

文法

exp(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

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

  • 查詢和分析語句

    * | SELECT exp(3)
  • 查詢和分析結果exp

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
  • 查詢和分析結果ceiling

from_base函數

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

文法

from_base(x, y)

參數說明

參數

說明

x

參數值為varchar類型。

y

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

傳回值類型

bigint類型。

樣本

將字串1101轉換為數字。

  • 查詢和分析語句

    * | SELECT  from_base('1101',2)
  • 查詢和分析結果from_base

ln函數

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

文法

ln(x)

參數說明

參數

說明

x

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

傳回值類型

double類型。

樣本

計算2的自然對數。

  • 查詢和分析語句

    * | SELECT ln(2)
  • 查詢和分析結果ln

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)
  • 查詢和分析結果is_nan

log2函數

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

文法

log2(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算100以2為底的對數。

  • 查詢和分析語句

    * | SELECT log2(100)
  • 查詢和分析結果log2

log10函數

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

文法

log10(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算100以10為底的對數。

  • 查詢和分析語句

    * | SELECT log10(100)
  • 查詢和分析結果log10

log函數

log函數用於計算xy為底數的對數。

文法

log(x, y)

參數說明

參數

說明

x

參數值為double類型。

y

參數值為double類型。

傳回值類型

double類型。

樣本

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

  • 查詢和分析語句

    * | SELECT log(100,5)
  • 查詢和分析結果log

mod函數

mod函數用於計算xy相除的餘數。

文法

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)
  • 查詢和分析結果mod

nan函數

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

文法

nan()

傳回值類型

double類型。

樣本

返回一個NaN值。

  • 查詢和分析語句

    * | SELECT nan()
  • 查詢和分析結果nan

pi函數

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

文法

pi()

傳回值類型

double類型。

樣本

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

  • 查詢和分析語句

    * | SELECT pi()
  • 查詢和分析結果pi

pow函數

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

文法

pow(x, y)

參數說明

參數

說明

x

參數值為double類型。

y

參數值為double類型。

傳回值類型

double類型。

樣本

計算2的5次冪。

  • 查詢和分析語句

    * | SELECT pow(2,5)
  • 查詢和分析結果pow

power函數

power用於計算xy次冪。

文法

power(x, y)

參數說明

參數

說明

x

參數值為double類型。

y

參數值為double類型。

傳回值類型

double類型。

樣本

計算2的5次冪。

  • 查詢和分析語句

    * | SELECT power(2,5)
  • 查詢和分析結果pow

radians函數

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

文法

radians(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算180°對應的弧度。

  • 查詢和分析語句

    * | SELECT radians(180)
  • 查詢和分析結果radians

rand函數

rand函數用於返回隨機數。

文法

rand()

傳回值類型

double類型。

樣本

返回一個隨機數。

  • 查詢和分析語句

    * | select rand()
  • 查詢和分析結果rand

random函數

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

文法

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

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

    random(x)

參數說明

參數

說明

x

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

傳回值類型

與參數值的類型一致。

樣本

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

  • 查詢和分析語句

    * | select random(100)
  • 查詢和分析結果random

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))
  • 查詢和分析結果round

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)
  • 查詢和分析結果sign

sin函數

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

文法

sin(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算90°角的正弦。

  • 查詢和分析語句

    * | select sin(pi()/2)
  • 查詢和分析結果sin

sqrt函數

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

文法

sqrt(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算100的平方根。

  • 查詢和分析語句

    * | select sqrt(100)
  • 查詢和分析結果sqrt

tan函數

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

文法

tan(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算tan30°角的正切。

  • 查詢和分析語句

    * | SELECT tan(pi()/6)
  • 查詢和分析結果tan

tanh函數

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

文法

tanh(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

計算30°的雙曲正切。

  • 查詢和分析語句

    * | SELECT tanh(pi()/6)
  • 查詢和分析結果tanh

to_base函數

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

文法

to_base(x, y)

參數說明

參數

說明

x

參數值為bigint類型。

y

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

傳回值類型

varchar類型。

樣本

將180轉換為二進位字串。

  • 查詢和分析語句

    * | SELECT  to_base(180, 2)
  • 查詢和分析結果to_base

truncate函數

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

文法

truncate(x)

參數說明

參數

說明

x

參數值為double類型。

傳回值類型

double類型。

樣本

截斷11.11的小數部分。

  • 查詢和分析語句

    * | SELECT  truncate(11.11)
  • 查詢和分析結果truncate

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
    • 查詢和分析結果 width_bucket

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

    • 查詢和分析語句

      * | SELECT request_time, width_bucket(request_time, array[10,20,30,40,50,60,70,80]) AS numBuckets
    • 查詢和分析結果width_bucket