赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 查询与分析
  6. 通过索引模式查询和分析日志
  7. SQL分析语法与功能
  8. SQL函数
  9. 数学计算函数

数学计算函数

  • SQL函数
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

本文介绍数学计算函数的基本语法和示例。

日志服务支持如下数学计算函数。

说明
  • 支持如下运算符:

    +-*/%

    其中,使用运算符/时,默认不保留小数部分。您可通过x*1.0/y运算,保留小数部分。

  • 在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:'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_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函数用于计算x和y相除的结果的反正切。

语法

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函数用于计算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]))
  • 查询和分析结果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函数返回将字符串x以y进制解释得到的数值。

语法

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函数用于计算x以y为底数的对数。

语法

log(x, y)

参数说明

参数

说明

x

参数值为double类型。

y

参数值为double类型。

返回值类型

double类型。

示例

计算100以5为底数的对数。

  • 查询和分析语句

    * | SELECT log(100,5)
  • 查询和分析结果log

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

nan函数

nan函数用于返回一个NaN值(Not a Number)。

语法

nan()

返回值类型

double类型。

示例

返回一个NaN值。

  • 查询和分析语句

    * | SELECT nan()
  • 查询和分析结果nan

pi函数

pi函数用于返回π值,精确到小数点后15位。

语法

pi()

返回值类型

double类型。

示例

返回π值,精确到小数点后15位。

  • 查询和分析语句

    * | SELECT pi()
  • 查询和分析结果pi

pow函数

pow函数用于计算x的y次幂。pow函数是power函数的别名。

语法

pow(x, y)

参数说明

参数

说明

x

参数值为double类型。

y

参数值为double类型。

返回值类型

double类型。

示例

计算2的5次幂。

  • 查询和分析语句

    * | SELECT pow(2,5)
  • 查询和分析结果pow

power函数

power用于计算x的y次幂。

语法

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

相关文章

聚合函数 2025-04-22 10:58

聚合函数用于对目标数值执行计算并返回结果。本文介绍聚合函数的基本语法及示例。

字符串函数 2025-04-22 10:58

本文介绍字符串函数的基本语法和示例。 日志服务支持如下字符串函数。

日期和时间函数 2025-04-22 10:58

日志服务提供时间函数、日期函数、日期和时间提取函数、时间间隔函数和时序补全函数,支持对日志中的日期和时间进行格式转换,分组聚合等处理。本文介绍日期和时间函数的基本语法及示例。 日期和时间函数概览 日志服务支持如下日期和时间函数。

JSON函数 2025-04-22 10:58

本文介绍JSON函数的基本语法及示例。 日志服务支持如下JSON函数。

正则式函数 2025-04-22 10:58

本文介绍正则式函数的基本语法及示例。 正则式函数概览 日志服务支持如下正则式函数(正则表达式采用RE2语法)。

同比和环比函数 2025-04-22 10:58

本文介绍同比和环比函数的基础语法和示例。 日志服务支持如下同比和环比函数。

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号