Apache Presto – SQL 函数
Apache Presto – SQL 函数
到目前为止,我们正在讨论在 Presto 上运行一些简单的基本查询。本章将讨论重要的 SQL 函数。
数学函数
数学函数对数学公式进行运算。下表详细描述了功能列表。
S.No. | 功能说明 |
---|---|
1. | abs(x)
返回x的绝对值 |
2. | cbrt(x)
返回x的立方根 |
3. | ceiling(x)
返回四舍五入到最接近的整数的x值 |
4. |
ceil(x) 天花板 (x) 的别名 |
5. | degrees(x)
返回x的度数值 |
6. | e(x)
返回欧拉数的双精度值 |
7. |
exp(x) 返回欧拉数的指数值 |
8. | floor(x)
返回x向下舍入到最接近的整数 |
9. |
from_base(string,radix) 返回解释为基数的字符串值 |
10. |
ln(x) 返回x的自然对数 |
11. | log2(x)
返回x 的以 2 为底的对数 |
12. |
log10(x) 返回x 的以 10 为底的对数 |
13. |
log(x,y) 返回x 的以y为底的对数 |
14. | mod(n,m)
返回n除以m的模数(余数) |
15. |
pi() 返回圆周率值。结果将作为双精度值返回 |
16. | power(x,p)
将值‘p’ 的幂返回到x值 |
17. |
pow(x,p) power(x,p) 的别名 |
18. | radians(x)
将角度x转换为弧度 |
19. |
rand() radians() 的别名 |
20. | random()
返回伪随机值 |
21. |
rand(n) random() 的别名 |
22. | round(x)
返回 x 的舍入值 |
23. |
round(x,d) x值四舍五入到‘d’小数位 |
24. |
sign(x) 返回 x 的符号函数,即 0 如果参数为 0 1 如果参数大于 0 -1 如果参数小于 0 对于双参数,该函数还返回 – NaN 如果参数是 NaN 1 如果参数是 +Infinity -1 如果参数是 -Infinity |
25. | sqrt(x)
返回x 的平方根 |
26. | to_base(x,radix)
返回类型是弓箭手。结果作为x 的基数返回 |
27. | truncate(x)
截断x的值 |
28. | width_bucket(x, bound1, bound2, n)
返回x指定的 bound1 和 bound2 边界的 bin 编号和 n 个桶数 |
29. | width_bucket(x, bins)
根据数组 bins 指定的 bin 返回x的 bin 编号 |
三角函数
三角函数参数表示为 radians()。下表列出了这些功能。
S.No | 功能和说明 |
---|---|
1. | acos(x)
返回反余弦值(x) |
2. |
asin(x) 返回反正弦值(x) |
3. |
atan(x) 返回反正切值(x) |
4. | atan2(y,x)
返回反正切值(y/x) |
5. |
cos(x) 返回余弦值(x) |
6. | cosh(x)
返回双曲余弦值(x) |
7. | sin(x)
返回正弦值(x) |
8. |
tan(x) 返回切线值(x) |
9. |
tanh(x) 返回双曲正切值(x) |
按位函数
下表列出了按位函数。
S.No | 功能和说明 |
---|---|
1. | bit_count(x, bits)
计算位数 |
2. | bitwise_and(x,y)
对两位x和y执行按位与运算 |
3. | bitwise_or(x,y)
两位x, y之间的按位或运算 |
4. | bitwise_not(x)
位x 的按位非操作 |
5. | bitwise_xor(x,y)
位x, y 的异或运算 |
字符串函数
下表列出了字符串函数。
S.No | 功能和说明 |
---|---|
1. | concat(string1, …, stringN)
连接给定的字符串 |
2. | length(string)
返回给定字符串的长度 |
3. | lower(string)
返回字符串的小写格式 |
4. | upper(string)
返回给定字符串的大写格式 |
5. | lpad(string, size, padstring)
给定字符串的左填充 |
6. | ltrim(string)
从字符串中删除前导空格 |
7. | replace(string, search, replace)
替换字符串值 |
8. | reverse(string)
反转对字符串执行的操作 |
9. | rpad(string, size, padstring)
给定字符串的正确填充 |
10. | rtrim(string)
从字符串中删除尾随空格 |
11. | split(string, delimiter)
在分隔符上拆分字符串并返回大小为最大限制的数组 |
12. | split_part(string, delimiter, index)
在分隔符上拆分字符串并返回字段索引 |
13. | strpos(string, substring)
返回子串在字符串中的起始位置 |
14. | substr(string, start)
返回给定字符串的子字符串 |
15. | substr(string, start, length)
返回具有特定长度的给定字符串的子字符串 |
16. | trim(string)
从字符串中删除前导和尾随空格 |
日期和时间函数
下表列出了日期和时间函数。
S.No | 功能和说明 |
---|---|
1. | current_date
返回当前日期 |
2. | current_time
返回当前时间 |
3. | current_timestamp
返回当前时间戳 |
4. | current_timezone()
返回当前时区 |
5. | now()
返回当前日期,带时区的时间戳 |
6. | localtime
返回当地时间 |
7. | localtimestamp
返回本地时间戳 |
正则表达式函数
下表列出了正则表达式函数。
S.No | 功能和说明 |
---|---|
1. | regexp_extract_all(string, pattern)
返回与模式的正则表达式匹配的字符串 |
2. | regexp_extract_all(string, pattern, group)
返回正则表达式与模式和组匹配的字符串 |
3. | regexp_extract(string, pattern)
返回与模式正则表达式匹配的第一个子字符串 |
4. | regexp_extract(string, pattern, group)
返回正则表达式匹配的模式和组的第一个子字符串 |
5. | regexp_like(string, pattern)
返回模式的字符串匹配。如果返回字符串,则该值将为真,否则为假 |
6. | regexp_replace(string, pattern)
用模式替换与表达式匹配的字符串实例 |
7. | regexp_replace(string, pattern, replacement)
用模式和替换替换与表达式匹配的字符串的实例 |
8. | regexp_split(string, pattern)
拆分给定模式的正则表达式 |
JSON 函数
下表列出了 JSON 函数。
S.No | 功能和说明 |
---|---|
1. | json_array_contains(json, value)
检查 json 数组中是否存在该值。如果值存在则返回true,否则返回false |
2. | json_array_get(json_array, index)
获取json数组中索引的元素 |
3. | json_array_length(json)
返回 json 数组中的长度 |
4. | json_format(json)
返回json结构格式 |
5. | json_parse(string)
将字符串解析为 json |
6. | json_size(json, json_path)
返回值的大小 |
网址功能
下表列出了 URL 函数。
S.No | 功能和说明 |
---|---|
1. | url_extract_host(url)
返回 URL 的主机 |
2. | url_extract_path(url)
返回 URL 的路径 |
3. | url_extract_port(url)
返回 URL 的端口 |
4. | url_extract_protocol(url)
返回 URL 的协议 |
5. | url_extract_query(url)
返回 URL 的查询字符串 |
聚合函数
下表列出了聚合函数。
S.No | 功能和说明 |
---|---|
1. |
avg(x) 返回给定值的平均值 |
2. | min(x,n)
返回两个值中的最小值 |
3. | max(x,n)
返回两个值的最大值 |
4. | sum(x)
返回值的总和 |
5. | count(&ast)
返回输入行数 |
6. | count(x)
返回输入值的计数 |
7. | checksum(x)
返回x的校验和 |
8. | arbitrary(x)
返回x的任意值 |
颜色函数
下表列出了颜色函数。
S.No | 功能和说明 |
---|---|
1. | bar(x, width)
使用 rgb low_color 和 high_color 渲染单个条形 |
2. | bar(x, width, low_color, high_color)
渲染指定宽度的单个条形 |
3. | color(string)
返回输入字符串的颜色值 |
4. | render(x, color)
使用 ANSI 颜色代码使用特定颜色渲染值 x |
5. | render(b)
接受布尔值 b 并使用 ANSI 颜色代码呈现绿色真或红色假 |
6. |
rgb(red, green, blue) 返回一个颜色值,它捕获三个分量颜色值的 RGB 值,作为整数参数提供,范围从 0 到 255 |
数组函数
下表列出了数组函数。
S.No | 功能和说明 |
---|---|
1. | array_max(x)
查找数组中的最大元素 |
2. | array_min(x)
查找数组中的最小元素 |
3. | array_sort(x)
对数组中的元素进行排序 |
4. | array_remove(x,element)
从数组中删除特定元素 |
5. | concat(x,y)
连接两个数组 |
6. | contains(x,element)
在数组中查找给定元素。如果存在则返回真,否则返回假 |
7. | array_position(x,element)
查找给定元素在数组中的位置 |
8. | array_intersect(x,y)
执行两个数组之间的交集 |
9. | element_at(array,index)
返回数组元素位置 |
10. | slice(x,start,length)
对指定长度的数组元素进行切片 |
Teradata 函数
下表列出了 Teradata 函数。
S.No | 功能和说明 |
---|---|
1. | index(string,substring)
返回具有给定子字符串的字符串的索引 |
2. | substring(string,start)
返回给定字符串的子字符串。您可以在此处指定开始索引 |
3. | substring(string,start,length)
返回给定字符串的子字符串,对应字符串的特定起始索引和长度 |