本文列举SQL分析所涉及的函数与运算符。

聚合函数

函数名称说明
arbitrary函数返回x中任意一个非空的值。
avg函数计算x中的算术平均值。
bitwise_and_agg函数返回x中所有值按位与运算(AND)的结果。
bitwise_or_agg函数返回x中所有值按位或运算(OR)的结果。
bool_and函数判断是否所有日志都满足条件。如果是,则返回true。

bool_and函数等同于every函数。

bool_or函数判断是否存在日志满足条件。如果存在,则返回true。
checksum函数计算x的校验和。
count函数统计所有的日志条数。
统计所有的日志条数,等同于count(*)。
统计x中值不为NULL的日志条数。
count_if函数统计满足指定条件的日志条数。
every函数判断是否所有日志都满足条件。如果是,则返回true。

every函数等同于bool_and函数。

geometric_mean函数计算x的几何平均数。
kurtosis函数计算x的峰度。
map_union函数返回一列Map数据的并集。 如果Map中存在相同的键,则返回的键值为其中任意一个键的值。
max函数查询x中的最大值。
查询x中最大的n个值。返回结果为数组。
max_by函数查询y为最大值时对应的x值。
查询最大的n个y值对应的x值,返回结果为数组。
min函数查询x中最小值。
查询x中最小的n个值。返回结果为数组。
min_by函数查询y为最小值时对应的x值。
查询最小的n个y值对应的x值。返回结果为数组。
skewness函数计算x的偏度。
sum函数计算x的总值。

字符串函数

函数名称说明
chr函数将ASCII码转换为字符。
codepoint函数将字符转换为ASCII码。
concat函数将多个字符串拼接成一个字符串。
from_utf8函数将二进制字符串解码为UTF-8编码格式,并使用默认字符U+FFFD替换无效的UTF-8字符。
将二进制字符串解码为UTF-8编码格式,并使用自定义字符串替换无效的UTF-8字符。
length函数计算字符串的长度。
levenshtein_distance函数计算x和y之间的最小编辑距离。
lower函数将字符串转换为小写形式。
lpad函数在字符串的开头填充指定字符,直到指定长度后返回结果字符串。
ltrim函数删除字符串开头的空格。
normalize函数使用NFC格式将字符串格式化。
position函数返回目标子串在字符串中的位置。
replace函数将字符串中所匹配的字符替换为其他指定字符。
删除字符串中匹配的字符。
reverse函数返回反向顺序的字符串。
rpad函数在字符串的尾部填充指定字符,直到指定长度后返回结果字符串。
rtrim函数删除字符串中结尾的空格。
split函数使用指定的分隔符拆分字符串,并返回子串集合。
通过指定的分隔符拆分字符串并使用limit限制字符串拆分的个数,然后返回拆分后的子串集合。
split_part函数使用指定的分隔符拆分字符串,并返回指定位置的内容。
split_to_map函数使用指定的第一个分隔符拆分字符串,然后再使用指定的第二个分隔符进行第二次拆分。
strpos函数返回目标子串在字符串中的位置。与position(sub_string in x)函数等价。
substr函数返回字符串中指定位置的子串,并指定子串长度。
返回字符串中指定位置的子串。
to_utf8函数将字符串转换为UTF-8编码格式。
trim函数删除字符串中开头和结尾的空格。
upper函数将字符串转化为大写形式。

日期和时间函数

函数名称说明
current_date函数返回当前日期。
current_time函数返回当前时间和时区。
current_timestamp函数返回当前日期、时间和时区。
current_timezone函数返回当前时区。
date函数返回日期和时间表达式中的日期部分。
date_format函数将timestamp类型的日期和时间表达式转化为指定格式的日期和时间表达式。
date_parse函数将日期和时间字符串转换为指定格式的timestamp类型的日期和时间表达式。
from_iso8601_date函数将ISO8601格式的日期表达式转化为date类型的日期表达式。
from_iso8601_timestamp函数将ISO8601格式的日期和时间表达式转化为timestamp类型的日期和时间表达式。
from_unixtime函数将UNIX时间戳转化为无时区的timestamp类型的日期和时间表达式。
将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式。
将UNIX时间戳转化为带时区的timestamp类型的日期和时间表达式,其中hours和minutes为时区偏移量。
localtime函数返回本地时间。
localtimestamp函数返回本地日期和时间。
now函数返回当前日期和时间。

now函数等同于current_timestamp函数。

to_iso8601函数将date类型或timestamp类型的日期和时间表达式转换为ISO8601格式的日期和时间表达式。
to_unixtime函数将timestamp类型的日期和时间表达式转化成UNIX时间戳。
day函数提取日期和时间表达式中的天数,按月计算。

day函数等同于day_of_month函数。

day_of_month函数提取日期和时间表达式中的天数,按月计算。

day_of_month函数等同于day函数。

day_of_week函数提取日期和时间表达式中的天数,按周计算。

day_of_week函数等同于dow函数。

day_of_year函数提取日期和时间表达式中的天数,按年计算。

day_of_year函数等同于doy函数。

dow函数提取日期和时间表达式中的天数,按周计算。

dow函数等同于day_of_week函数。

doy函数提取日期和时间表达式中的天数,按年计算。

doy函数等同于day_of_year函数。

extract函数通过指定的field,提取日期和时间表达式中的日期或时间部分。
hour函数提取日期和时间表达式中的小时数,按24小时制计算。
minute函数提取日期和时间表达式中的分钟数。
month函数提取日期和时间表达式中的月份。
quarter函数计算目标日期所属的季度。
second函数提取日期和时间表达式中的秒数。
timezone_hour函数计算时区的小时偏移量。
timezone_minute函数计算时区的分钟偏移量。
week函数计算目标日期是在一年中的第几周。

week函数等同于week_of_year函数。

week_of_year函数计算目标日期是在一年中的第几周。

week_of_year函数等同于week函数。

year函数提取目标日期中的年份。
year_of_week函数提取目标日期在ISO周日历中的年份。

year_of_week函数等同于yow函数。

yow函数提取目标日期在ISO周日历中的年份。

yow函数等同于year_of_week函数。

date_trunc函数根据您指定的时间单位截断日期和时间表达式,并按照毫秒、秒、分钟,小时、日、月或年对齐。
date_add函数在x上加上N个时间单位(unit)。
date_diff函数返回两个时间表达式之间的时间差值,例如计算x和y之间相差几个时间单位(unit)。
time_series函数补全您查询时间窗口内缺失的数据。

JSON函数

函数名称说明
json_array_contains函数判断JSON数组中是否包含某个值。
json_array_get函数获取JSON数组中某个下标对应的元素。
json_array_length函数计算JSON数组中元素的数量。
json_extract函数从JSON对象或JSON数组中提取一组JSON值(数组或对象)。
json_extract_scalar函数从JSON对象或JSON数组中提取一组标量值(字符串、整数或布尔值)。类似于json_extract函数。
json_format函数把JSON类型转化成字符串类型。
json_parse函数把字符串类型转化成JSON类型。
json_size函数计算JSON对象或数组中元素的数量。

正则式函数

函数名称说明
regexp_extract_all函数提取目标字符串中符合正则表达式的子串,并返回所有子串的合集。
提取目标字符串中符合正则表达式的子串,然后返回与目标捕获组匹配的子串合集。
regexp_extract函数提取并返回目标字符串中符合正则表达式的第一个子串。
提取目标字符串中符合正则表达式的子串,然后返回与目标捕获组匹配的第一个子串。
regexp_like函数判断目标字符串是否符合正则表达式。
regexp_replace函数删除目标字符串中符合正则表达式的子串,返回未被删除的子串。
替换目标字符串中符合正则表达式的子串,返回被替换后的字符串。
regexp_split函数使用正则表达式分割目标字符串,返回被分割后的子串合集。

同比与环比函数

函数名称说明
compare函数对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。
对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。
ts_compare函数对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。
重要 ts_compare函数必须按照时间列进行分组(GROUP BY)。
对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。

数组函数和运算符

函数名称说明
下标运算符返回数组中的第x个元素。
array_agg函数以数组形式返回x中的所有值。
array_distinct函数删除数组中重复的元素。
array_except函数计算两个数组的差集。
array_intersect函数计算两个数组的交集。
array_join函数使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被忽略。
使用指定的连接符将数组中的元素拼接为一个字符串。如果数组中包含null元素,则null元素将被替换为null_replacement。
array_max函数获取数组中的最大值。
array_min函数获取数组中的最小值。
array_position函数获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。
array_remove函数删除数组中指定的元素。
array_sort函数对数组元素进行升序排序。如果有null元素,则null元素排在最后。
array_transpose函数对矩阵进行转置,即提取二维数组中索引相同的元素组成一个新的二维数组。
array_union函数计算两个数组的并集。
cardinality函数计算数组中元素的个数。
concat函数将多个数组拼接为一个数组。
contains函数判断数组中是否包含指定元素。如果包含,则返回true。
element_at函数返回数组中的第y个元素。
filter函数结合Lambda表达式,用于过滤数组中的元素。只返回满足Lambda表达式的元素。
flatten函数把将二维数组转换为一维数组。
reduce函数根据Lambda表达式中的定义,对数组中的各个元素进行相加计算,然后返回计算结果。
reverse函数对数组中的元素进行反向排列。
sequence函数通过指定的起始值返回一个数组,其元素为起始值范围内一组连续且递增的值。递增间隔为默认值1。
通过指定的起始值返回一个数组,其元素为起始值范围内一组连续且递增的值。自定义递增间隔。
shuffle函数对数组元素进行随机排列。
slice函数获取数组的子集。
transform函数将Lambda表达式应用到数组的每个元素中。
zip函数将多个数组合并为一个二维数组,且各个数组中下标相同的元素组成一个新的数组。
zip_with函数根据Lambda表达式中的定义将两个数组合并为一个数组。

Map映射函数和运算符

函数名称说明
下标运算符获取Map中目标键的值。
cardinality函数计算Map的大小。
element_at函数获取Map中目标键的值。
histogram函数对查询和分析结果进行分组,返回结果为JSON格式。
histogram_u函数对查询和分析结果进行分组,返回结果为多行多列格式。
map函数返回一个空Map。
将两个数组映射为一个Map。
map_agg函数将x和y映射为一个Map。x为Map中的键,y为Map中的键值。当y存在多个值时,随机提取一个值作为键值。
map_concat函数将多个Map合并为一个Map。
map_filter函数结合Lambda表达式,用于过滤Map中的元素。
map_keys函数提取Map中所有的键,并以数组形式返回。
map_values函数提取Map中所有键的值,并以数组形式返回。
multimap_agg函数将x和y映射为一个Map。x为Map中的键,y为Map中的键值,键值为数组格式。当y存在多个值时,提取所有的值作为键值。

数学计算函数

函数名称说明
abs函数计算x的绝对值。
acos函数计算x的反余弦。
asin函数计算x的反正弦。
atan函数计算x的反正切。
atan2函数计算x和y相除的结果的反正切。
cbrt函数计算x的立方根。
ceil函数对x进行向上取整数。

ceil函数是ceiling函数的别名。

ceiling函数对x进行向上取整数。
cos函数计算x的余弦。
cosh函数计算x的双曲余弦。
cosine_similarity函数计算x和y之间的余弦相似度。
degrees函数将弧度转换为度。
e函数返回自然底数e的值。
exp函数计算自然底数e的x次幂。
floor函数对x进行向下取整数。
from_base函数根据BASE编码将x转为y进制的数字。
ln函数计算x的自然对数。
infinity函数返回正无穷的数值。
is_nan函数判断x是否为NaN。
log2函数计算x以2为底的对数。
log10函数计算x以10为底的对数。
log函数计算x以y为底的对数。
mod函数计算x与y相除的余数。
nan函数返回一个NaN值。
pi函数返回π值,精确到小数点后15位。
pow函数计算x的y次幂。

pow函数是power函数的别名。

power函数计算x的y次幂。
radians函数将度转换为弧度。
rand函数返回随机数。
random函数返回[0,1)之间的随机数。
返回[0,x)之间的随机数。
round函数对x进行四舍五入取整数。
对x进行四舍五入且保留n位小数。
sign函数返回x的符号,通过1、0、-1表示。
sin函数计算x的正弦。
sqrt函数计算x的平方根。
tan函数计算x的正切。
tanh函数计算x的双曲正切。
to_base函数根据BASE编码将x转为y进制的字符串。
truncate函数截断x的小数部分。
width_bucket函数将一段数值范围划分成大小相同的多个Bucket,然后返回x所属的Bucket。
使用数组指定Bucket的范围,然后返回x所属的Bucket。

数学统计函数

函数名称说明
corr函数计算x和y的相关度。计算结果范围为[0,1]。
covar_pop函数计算x和y的总体协方差。
covar_samp函数计算x和y的样本协方差。
stddev函数计算x的样本标准差。与stddev_samp函数同义。
stddev_samp函数计算x的样本标准差。
stddev_pop函数计算x的总体标准差。
variance函数计算x的样本方差。与var_samp函数同义。
var_samp函数计算x的样本方差。
var_pop函数计算x的总体方差。
regr_intercept函数根据输入点(x,y)拟合成一个线性方程,然后计算该直线的Y轴截距。
regr_slope函数根据输入点(x,y)拟合成一个线性方程,然后计算该直线的斜率。
beta_cdf函数用于计算贝塔分布的累积分布函数。P(N <= v; α, β),其中α和β是贝塔分布的参数。
binomial_cdf函数用于计算二项分布的累积分布函数。P(N <= v),其中x表示实验的次数,y表示单次实验成功的概率。
cauchy_cdf函数用于计算柯西分布的累积分布函数。P(N <= v; x, y),其中x表示分布峰值位置的位置参数,y是尺度参数。
chi_squared_cdf函数用于计算卡方分布的累积分布函数。P(N <= v; k),其中k是卡方分布服从的自由度。
inverse_beta_cdf函数计算贝塔分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; α, β)的结果为p。
inverse_binomial_cdf函数计算二项分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v)的结果为p。
inverse_cauchy_cdf函数计算柯西分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; x, y)的结果为p。
inverse_chi_squared_cdf函数计算卡方分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; k)的结果为p。
inverse_laplace_cdf函数计算拉普拉斯分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; μ, b)的结果为p。
inverse_normal_cdf函数计算正态分布的逆累积分布函数。即求v的值,使得累积分布函数P(N < v; x, y)的结果为p。
inverse_poisson_cdf函数计算泊松分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; λ)的结果为p。
inverse_weibull_cdf函数计算韦布分布的逆累积分布函数。即求v的值,使得累积分布函数P(N <= v; x, y)的结果为p。
laplace_cdf函数计算拉普拉斯分布的累积分布函数。P(N <= v; μ, b),其中μ 是位置参数,b 是尺度参数。
normal_cdf函数计算正态分布的累积分布函数。P(N < v; x, y),其中x和y分别表示正态分布的均值和标准差。
poisson_cdf函数计算泊松分布的累积分布函数。P(N <= v; λ),其中λ表示随机事件发生的平均概率。
weibull_cdf函数计算韦布分布的累积分布函数。P(N <= v; x, y),其中x表示比例参数,y是形状参数。

类型转换函数

函数名称说明
cast函数转换x的数据类型。

使用cast函数转换数据类型时,如果某个值转换失败,将终止整个查询与分析操作。

try_cast函数转换x的数据类型。

使用try_cast函数转换数据类型时,如果某个值转换失败,该值返回NULL,并跳过该值继续处理。

说明 日志中可能有脏数据,建议使用try_cast函数,避免因脏数据造成整个查询与分析操作失败。
typeof函数返回x的数据类型。

窗口函数

函数名称说明
聚合函数所有聚合函数都支持在窗口函数中使用。聚合函数列表请参见聚合函数
cume_dist函数统计窗口分区内各个值的累计分布。即计算窗口分区内值小于等于当前值的行数占窗口内总行数的比例。返回值范围为(0,1]。
dense_rank函数窗口分区内值的排名。相同值拥有相同的排名,排名是连续的,例如有两个相同值的排名为1,则下一个值的排名为2。
ntile函数将窗口分区内数据按照顺序分成n组。
percent_rank函数计算窗口分区内各行的百分比排名。
rank函数窗口分区内值的排名。相同值拥有相同的排名,排名不是连续的,例如有两个相同值的排名为1,则下一个值的排名为3。
row_number函数窗口分区内值的排名。每个值拥有唯一的序号,从1开始。三个相同值的排名为1、2、3。
first_value函数返回各个窗口分区内第一行的值。
last_value函数返回各个窗口分区内最后一行的值。
lag函数返回窗口分区内位于当前行上方第offset行的值。如果不存在该行,则返回defaut_value。
lead函数返回窗口分区内位于当前行下方第offset行的值。如果不存在该行,则返回defaut_value。
nth_value函数返回窗口分区中第offset行的值。

IP函数

函数名称说明
ip_to_city函数分析目标IP地址所属城市。

返回结果为城市的中文名称。

分析目标IP地址所属城市。

返回结果为城市的行政区划代码。

ip_to_city_geo函数分析目标IP地址所属城市的经纬度。此函数返回的是城市经纬度,每个城市只有一个经纬度。
ip_to_country函数分析目标IP地址所属国家或地区。

返回结果为国家或地区的中文名称。

分析目标IP地址所属国家或地区。

返回结果为国家或地区的代码。

ip_to_country_code函数分析目标IP地址所属国家或地区。

返回结果为国家或地区的代码。

ip_to_domain函数判断目标IP地址是内网地址还是外网地址。
ip_to_geo函数分析目标IP地址所在位置的经纬度。
ip_to_provider函数分析目标IP地址所对应的网络运营商。
ip_to_province函数分析目标IP地址所属省份

返回结果为省份的中文名称。

分析目标IP地址所属省份

返回结果为省份的行政区划代码。

ip_prefix函数获取目标IP地址的前缀。
is_prefix_subnet_of函数判断目标网段是否为某网段的子网。
is_subnet_of函数判断目标IP地址是否在某网段内。
ip_subnet_max函数获取IP网段中的最大IP地址。
ip_subnet_min函数获取IP网段中的最小IP地址。
ip_subnet_range函数获取IP网段范围。
ipv6_to_city函数分析目标IPv6地址所属城市的名称。
ipv6_to_city_code函数分析目标IPv6地址所属城市的行政区划代码。
ipv6_to_city_geo函数分析目标IPv6地址所属城市的经纬度。
ipv6_to_country函数分析目标IPv6地址所属国家或地区。
ipv6_to_country_code函数分析目标IPv6地址所属国家或地区的代码。
ipv6_to_domain函数判断目标IPv6地址是内网地址还是外网地址。
ipv6_to_provider函数分析目标IPv6地址所对应的网络运营商。
ipv6_to_province函数分析目标IPv6地址所属省份。
ipv6_to_province_code函数分析目标IPv6地址所属省份的行政区划代码。

URL函数

函数名称说明
url_encode函数对URL进行编码。
url_decode函数对URL进行解码。
url_extract_fragment函数从URL中提取Fragment信息。
url_extract_host函数从URL中提取Host信息。
url_extract_parameter函数从URL的查询部分中提取指定参数的值。
url_extract_path函数从URL中提取访问路径信息。
url_extract_port函数从URL中提取端口信息。
url_extract_protocol函数从URL中提取协议信息。
url_extract_query函数从URL中提取查询部分的信息。

估算函数

函数名称说明
approx_distinct函数估算x中不重复值的个数,默认存在2.3%的标准误差。
估算xx中不重复值的个数,支持自定义标准误差。
approx_percentile函数对x进行正序排列,返回大约处于percentage位置的x。
对x进行正序排列,返回大约处于percentage01、percentage02位置的x。
对x和权重的乘积进行正序排列,返回大约处于percentage位置的x。
对x和权重的乘积进行正序排列,返回大约处于percentage01、percentage02位置的x。
对x和权重的乘积进行正序排列,返回大约处于percentage位置的x。支持设置返回结果的准确度。
numeric_histogram函数按照bucket数量(直方图列数),统计x的近似直方图,返回结果为JSON类型。
按照bucket数量(直方图列数),统计x的近似直方图,返回结果为JSON类型。支持对x设置权重。
numeric_histogram_u函数按照bucket数量(直方图列数),统计x的近似直方图,返回结果为多行多列格式。

二进制函数

函数名称说明
from_base64函数将BASE64编码的字符串解码为二进制类型的数据。
from_base64url函数使用URL安全字符将BASE64编码的字符串解码为二进制类型的数据。
from_big_endian_64函数将大端模式的二进制类型的数据转化成数字。
from_hex函数将十六进制类型的数据转化成二进制类型的数据。
length函数计算二进制类型的数据的长度。
md5函数对二进制类型的数据进行MD5编码。
to_base64函数对二进制类型的数据进行BASE64编码。
to_base64url函数使用URL安全字符将二进制类型的数据进行BASE64编码。
to_hex函数将二进制类型的数据转化成十六进制类型的数据。
to_big_endian_64函数将数字转化为大端模式的二进制类型的数据。
sha1函数对二进制类型的数据进行SHA1加密。
sha256函数对二进制类型的数据进行SHA256加密。
sha512函数对二进制类型的数据进行SHA512加密。
xxhash64函数对二进制类型的数据进行xxHash64加密。

位运算函数

函数名称说明
bit_count函数统计x中1的个数。
bitwise_and函数以二进制形式对x和y进行与运算。
bitwise_not函数以二进制形式对x的所有位进行取反运算。
bitwise_or函数以二进制形式对x和y进行或运算。
bitwise_xor函数以二进制形式对x和y进行异或运算。

空间几何函数

函数名称说明
ST_AsText函数将一个空间几何体转变为WKT格式的文本。
ST_GeometryFromText函数根据输入的WKT文本构造一个空间几何体。
ST_LineFromText函数根据输入的WKT文本构造一条线段。
ST_Polygon函数根据输入的WKT文本构造一个多边形。
ST_Point函数根据输入的WKT文本构造一个点。
ST_Boundary函数返回空间几何体的边界。
ST_Buffer函数返回距离指定空间几何体一定距离的空间几何体。
ST_Difference函数返回两个空间几何体不同点的集合。
ST_Envelope函数返回空间几何体的最小边界框。
ST_ExteriorRing函数返回空间几何体的外环(线段形式)。
ST_Intersection函数返回两个空间几何体的交集点。
ST_SymDifference函数返回两个空间几何体的不同点,然后组成一个新的空间几何体。
ST_Contains函数判断第一个空间几何体是否包含第二个空间几何体(边界可存在交集)。如果包含,则返回true。
ST_Crosses函数判断两个空间几何体是否存在相同的内部点。如果存在,则返回true。
ST_Disjoint函数判断两个空间几何体是否没有任何交集。 如果没有,则返回true。
ST_Equals函数判断两个空间几何体是否完全相同。如果是,则返回true。
ST_Intersects函数判断两个空间几何体的平面投影是否存在共同点。如果是,则返回true。
ST_Overlaps函数判断两个空间几何体的维度是否相同。如果两个空间几何体的维度相同且不是包含关系,则返回true。
ST_Relate函数判断两个空间几何体是否相关。如果是,则返回true。
ST_Touches函数判断两个空间几何体是否只有边界存在关联,没有共同的内部点。如果是,则返回true。
ST_Within函数判断第一个空间几何体是否完全在第二个空间几何体内部(边界无交集)。如果是,则返回true。
ST_Area函数使用欧几里得测量法计算空间几何体在二维平面上的投影面积。
ST_Centroid函数返回空间几何实体的中心点。
ST_CoordDim函数返回空间几何体的坐标维度。
ST_Dimension函数返回空间几何实体的固有维度,必须小于或等于坐标维度。
ST_Distance函数计算两个空间几何体之间的最小距离。
ST_EndPoint函数返回线段中的最后一个点。
ST_IsClosed函数判断输入的空间几何体是否封闭。如果是,则返回true。
ST_IsEmpty函数判断输入的空间几何体是否为空。如果是,则返回true。
ST_IsRing函数判断输入的空间几何体是否为闭合的简单线段(环)。如果是,则返回true。
ST_Length函数使用欧几里得测量法计算线段的二维投影长度。如果存在多条线段,则返回所有线段的长度之和。
ST_NumPoints函数返回空间几何体中点的个数。
ST_NumInteriorRing函数计算空间几何体中内部环的数量。
ST_StartPoint函数返回线段中的第一个点。
ST_X函数返回输入点的X轴坐标。
ST_XMax函数返回空间几何体的第一个最大的X轴坐标。
ST_XMin函数返回空间几何体的第一个最小的X轴坐标。
ST_Y函数返回输入点的Y轴坐标。
ST_YMax函数返回空间几何体的第一个最大的Y轴坐标。
ST_YMin函数返回几何体的第一个最小的Y轴坐标。
bing_tile函数通过X坐标、Y坐标和缩放级别构造一个Bing图块。
通过四叉树键构造一个Bing图块。
bing_tile_at函数通过经纬度和缩放级别构造一个Bing图块。
bing_tile_coordinates函数返回目标Bing图块对应的X坐标和Y坐标。
bing_tile_polygon函数返回目标Bing图块的多边形格式。
bing_tile_quadkey函数返回目标Bing图块的四叉树键。
bing_tile_zoom_level函数返回目标Bing图块的缩放级别。

地理函数

函数名称说明
geohash函数对纬度和经度进行geohash编码。

颜色函数

函数名称说明
bar函数通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色为红色(low_color),结束颜色为绿色(high_color)。然后通过x截取其中一段ANSI条形图并返回。
通过width指定整条ANSI条形图的宽度,其中该ANSI条形图的起始颜色和结束颜色为自定义颜色。然后通过x截取其中一段ANSI条形图并返回。
color函数将颜色字符串转换为color类型。
通过判断x在low和high之间的占比指定low_color和high_color的份量,然后返回处于low_color和high_color之间的一个颜色。
通过y指定low_color和high_color的份量,然后返回处于low_color和high_color之间的一个颜色。
render函数通过颜色渲染返回结果。布尔表达式为真时,返回绿色勾;否则返回红色叉。
通过自定义的颜色渲染返回结果。
rgb函数通过RGB值返回一个颜色值。

HyperLogLog函数

函数名称说明
approx_set函数估算x中不重复值的个数,最大标准误差默认为0.01625。
cardinality函数将HyperLogLog类型的内容转换为bigint类型。
empty_approx_set函数返回一个HyperLogLog类型的空值。最大标准误差默认为0.01625。
merge函数聚合计算所有的HyperLogLog值。

电话号码函数

函数名称说明
mobile_carrier函数分析电话号码所属运营商。
mobile_city函数分析电话号码所属城市。
mobile_province函数分析电话号码所属省份。

比较运算符

运算符说明
基础运算符比较x和y的大小关系。如果逻辑成立,则返回true。
ALL运算符x满足所有条件时,返回true。
ANY运算符x满足任意一个条件时,返回true。
BETWEEN运算符x处在y和z之间时,返回true。
DISTINCT运算符(x IS DISTINCT FROM y)x不等于y时,返回true。
(x IS NOT DISTINCT FROM y)x等于y时,返回true。
LIKE运算符匹配字符串中指定的字符模式。字符串区分大小写。
SOME运算符x满足任意一个条件时,返回true。
GREATEST运算符查询x、y中的最大值。
LEAST运算符查询x、y中的最小值。
NULL运算符(x IS NULL)x为null时,返回true。
(x IS NOT NULL)x不为null时,返回true。

逻辑运算符

运算符说明
AND运算符x和y的值都为true时,返回结果为true。
OR运算符x和y中任意一个的值为true时,返回结果为true。
NOT运算符x的值为false时,返回结果为true。

单位换算函数

函数名称说明
convert_data_size函数对数据量单位进行换算,系统自动判断最优的换算单位,返回使用最优单位表示的数据量。返回类型为string。例如将1024 KB换算为1 MB,1024 MB换算为1 GB。
对数据量单位进行换算,返回使用指定单位表示的数据量。返回类型为string。
format_data_size函数对Byte单位进行换算,返回使用指定单位表示的数据量。返回类型为string。
parse_data_size函数对数据量单位进行换算,返回以Byte为单位的数据量。返回类型为decimal。
to_data_size_B函数对数据量单位进行换算,返回以Byte为单位的数据量。返回类型为double。
to_data_size_KB函数对数据量单位进行换算,返回以KB为单位的数据量。返回类型为double。
to_data_size_MB函数对数据量单位进行换算,返回以MB为单位的数据量。返回类型为double。
to_data_size_GB函数对数据量单位进行换算,返回以GB为单位的数据量。返回类型为double。
to_data_size_TB函数对数据量单位进行换算,返回以TB为单位的数据量。返回类型为double。
to_data_size_PB函数对数据量单位进行换算,返回以PB为单位的数据量。返回类型为double。
format_duration函数对以秒为单位的时间间隔进行格式化,转换为可读的字符串类型。
parse_duration函数对时间间隔进行格式化,转换为0 00:00:00.000格式。
to_days函数对时间间隔单位进行换算,转换为以天为单位的时间间隔。
to_hours函数对时间间隔单位进行换算,转换为以小时为单位的时间间隔。
to_microseconds函数对时间间隔单位进行换算,转换为以微秒为单位的时间间隔。
to_milliseconds函数对时间间隔单位进行换算,转换为以毫秒为单位的时间间隔。
to_minutes函数对时间间隔单位进行换算,转换为以分钟为单位的时间间隔。
to_most_succinct_time_unit函数对时间间隔单位进行换算,系统自动判断最优的换算单位,返回使用最优单位表示的时间间隔。
to_nanoseconds函数对时间间隔单位进行换算,转换为以纳秒为单位的时间间隔。
to_seconds函数对时间间隔单位进行换算,转换为以秒为单位的时间间隔。

窗口漏斗函数

函数名称说明
window_funnel函数在滑动的时间窗口中搜索事件链并计算事件链中发生的最大连续的事件数。

Lambda表达式

日志服务支持您在SQL分析语句中定义Lambda表达式,并将该表达式传递给指定函数,丰富函数的表达。更多信息,请参见Lambda表达式

条件表达式

表达式说明
CASE WHEN表达式通过条件判断,对数据进行归类。
IF表达式通过条件判断,对数据进行归类。
COALESCE表达式返回多个表达式中第一个非NULL的值。
NULLIF表达式比较两个表达式的值是否相等。如果相等,则返回null,否则返回第一个表达式的值。
TRY表达式捕获异常信息,使得系统继续执行查询和分析操作。