- Apache Presto Tutorial
- Apache Presto - Home
- Apache Presto - Overview
- Apache Presto - Architecture
- Apache Presto - Installation
- Apache Presto - Configuration
- Apache Presto - Administration
- Apache Presto - SQL Operations
- Apache Presto - SQL Functions
- Apache Presto - MySQL Connector
- Apache Presto - JMX Connector
- Apache Presto - HIVE Connector
- Apache Presto - KAFKA Connector
- Apache Presto - JDBC Interface
- Custom Function Application
- Apache Presto Useful Resources
- Apache Presto - Quick Guide
- Apache Presto - Useful Resources
- Apache Presto - Discussion
Apache Presto - SQL 函数
截至目前,我们正在讨论在 Presto 上运行一些简单的基本查询。本章将讨论重要的 SQL 函数。
数学函数
数学函数对数学公式进行运算。下表详细描述了函数列表。
编号 | 功能说明 |
---|---|
1. | 绝对值(x)
返回x的绝对值 |
2. | CBRT(x)
返回x的立方根 |
3. | 上限(x)
返回x值向上舍入到最接近的整数 |
4. | 上限(x) 天花板的别名(x) |
5. | 度(x)
返回x的度值 |
6. | 前任)
返回欧拉数的双精度值 |
7. | 指数 (x) 返回欧拉数的指数值 |
8. | 楼层(x)
返回x向下舍入到最接近的整数 |
9. | from_base(字符串,基数) 返回解释为基数的字符串值 |
10. | ln(x) 返回x的自然对数 |
11. | log2(x)
返回x以 2 为底的对数 |
12. | log10(x) 返回x以 10 为底的对数 |
13. | 日志(x,y) 返回x以y为底的对数 |
14. | 模(n,m)
返回n除以m的模(余数) |
15. | 圆周率() 返回 pi 值。结果将以双精度值形式返回 |
16. | 幂(x,p)
返回值'p'的x值幂 |
17. | 战俘(x,p) power(x,p) 的别名 |
18. | 弧度(x)
将角度x转换为度弧度 |
19. | 兰特() 弧度的别名() |
20. | 随机的()
返回伪随机值 |
21. | 兰特(n) random() 的别名 |
22. | 轮(x)
返回 x 的舍入值 |
23. | 圆(x,d) x值四舍五入为“d”位小数 |
24. | 符号(x) 返回 x 的正负号函数,即 如果参数为 0,则为 0 如果参数大于 0,则为 1 如果参数小于 0,则为 -1 对于双参数,该函数还返回 - NaN 如果参数为 NaN 如果参数为 +Infinity,则为 1 如果参数为 -Infinity,则为 -1 |
25. | 开方(x)
返回x的平方根 |
26. | to_base(x,基数)
返回类型是弓箭手。结果作为x 的基数返回 |
27. | 截断(x)
截断x的值 |
28. | width_bucket(x, 边界1, 边界2, n)
返回x指定的bound1和bound2边界的bin号以及n个桶 |
29. | width_bucket(x,垃圾箱)
根据数组bins指定的bins返回x的bin号 |
三角函数
三角函数参数表示为 radians()。下表列出了功能。
序列号 | 功能及说明 |
---|---|
1. | acos(x)
返回反余弦值(x) |
2. | 阿信(x) 返回反正弦值(x) |
3. | 阿坦(x) 返回反正切值(x) |
4. | atan2(y,x)
返回反正切值(y/x) |
5. | 余弦(x) 返回余弦值(x) |
6. | 余弦(x)
返回双曲余弦值(x) |
7. | 正弦(x)
返回正弦值(x) |
8. | tan(x) 返回正切值(x) |
9. | tanh(x) 返回双曲正切值(x) |
按位函数
下表列出了按位函数。
序列号 | 功能及说明 |
---|---|
1. | 位计数(x,位)
计算位数 |
2. | 按位与(x,y)
对x和y两位执行按位 AND 运算 |
3. | 按位或(x,y)
两个位x, y之间的按位或运算 |
4. | 按位非(x)
位x的按位非运算 |
5. | 按位异或(x,y)
位x、y的异或运算 |
字符串函数
下表列出了字符串函数。
序列号 | 功能及说明 |
---|---|
1. | 连接(字符串1,...,字符串N)
连接给定的字符串 |
2. | 长度(字符串)
返回给定字符串的长度 |
3. | 较低(字符串)
返回字符串的小写格式 |
4. | 上部(字符串)
返回给定字符串的大写格式 |
5. | lpad(字符串,大小,填充字符串)
给定字符串的左填充 |
6. | ltrim(字符串)
从字符串中删除前导空格 |
7. | 替换(字符串、搜索、替换)
替换字符串值 |
8. | 反转(字符串)
反转对字符串执行的操作 |
9. | rpad(字符串,大小,填充字符串)
给定字符串的右填充 |
10. | rtrim(字符串)
从字符串中删除尾随空格 |
11. | split(字符串,分隔符)
按分隔符分割字符串并返回最大大小的数组 |
12. | split_part(字符串、分隔符、索引)
按分隔符拆分字符串并返回字段索引 |
13. | strpos(字符串,子字符串)
返回子字符串在字符串中的起始位置 |
14. | substr(字符串,开始)
返回给定字符串的子字符串 |
15. | substr(字符串,开始,长度)
返回给定字符串的特定长度的子字符串 |
16. | 修剪(字符串)
从字符串中删除前导和尾随空格 |
日期和时间函数
下表列出了日期和时间函数。
序列号 | 功能及说明 |
---|---|
1. | 当前日期
返回当前日期 |
2. | 当前时间
返回当前时间 |
3. | 当前时间戳
返回当前时间戳 |
4. | 当前时区()
返回当前时区 |
5. | 现在()
返回当前日期、时间戳和时区 |
6. | 当地时间
返回当地时间 |
7. | 本地时间戳
返回本地时间戳 |
正则表达式函数
下表列出了正则表达式函数。
序列号 | 功能及说明 |
---|---|
1. | regexp_extract_all(字符串,模式)
返回与模式的正则表达式匹配的字符串 |
2. | regexp_extract_all(字符串、模式、组)
返回与模式和组的正则表达式匹配的字符串 |
3. | regexp_extract(字符串,模式)
返回与模式的正则表达式匹配的第一个子字符串 |
4. | regexp_extract(字符串、模式、组)
返回与模式和组的正则表达式匹配的第一个子字符串 |
5. | regexp_like(字符串,模式)
返回模式的字符串匹配项。如果返回字符串,则值为 true,否则为 false |
6. | regexp_replace(字符串,模式)
用模式替换与表达式匹配的字符串实例 |
7. | regexp_replace(字符串、模式、替换)
将与表达式匹配的字符串实例替换为模式和替换 |
8. | regexp_split(字符串,模式)
分割给定模式的正则表达式 |
JSON 函数
下表列出了 JSON 函数。
序列号 | 功能及说明 |
---|---|
1. | json_array_contains(json, 值)
检查 json 数组中是否存在该值。如果该值存在则返回 true,否则返回 false |
2. | json_array_get(json_array, 索引)
获取json数组中索引的元素 |
3. | json_array_length(json)
返回 json 数组的长度 |
4. | json_格式(json)
返回json结构格式 |
5. | json_parse(字符串)
将字符串解析为 json |
6. | json_size(json, json_path)
返回值的大小 |
网址函数
下表列出了 URL 函数。
序列号 | 功能及说明 |
---|---|
1. | url_extract_host(网址)
返回 URL 的主机 |
2. | url_extract_path(网址)
返回 URL 的路径 |
3. | url_extract_port(网址)
返回 URL 的端口 |
4. | url_extract_protocol(网址)
返回 URL 的协议 |
5. | url_extract_query(网址)
返回 URL 的查询字符串 |
聚合函数
下表列出了聚合函数。
序列号 | 功能及说明 |
---|---|
1. | 平均值(x) 返回给定值的平均值 |
2. | 最小值(x,n)
返回两个值中的最小值 |
3. | 最大值(x,n)
返回两个值中的最大值 |
4. | 总和(x)
返回值的总和 |
5. | 数数(*)
返回输入行数 |
6. | 计数(x)
返回输入值的计数 |
7. | 校验和(x)
返回x的校验和 |
8. | 任意(x)
返回x的任意值 |
颜色功能
下表列出了颜色函数。
序列号 | 功能及说明 |
---|---|
1. | 条形(x,宽度)
使用 rgb low_color 和 high_color 渲染单个条 |
2. | 条形图(x,宽度,低颜色,高颜色)
渲染指定宽度的单个条形 |
3. | 颜色(字符串)
返回输入字符串的颜色值 |
4. | 渲染(x,颜色)
使用 ANSI 颜色代码使用特定颜色渲染值 x |
5. | 渲染(b)
接受布尔值 b 并使用 ANSI 颜色代码呈现绿色 true 或红色 false |
6. | RGB(红、绿、蓝) 返回一个颜色值,捕获以 int 参数形式提供的三个分量颜色值的 RGB 值,范围从 0 到 255 |
数组函数
下表列出了数组函数。
序列号 | 功能及说明 |
---|---|
1. | 数组最大(x)
查找数组中的最大元素 |
2. | 数组最小值(x)
查找数组中的最小元素 |
3. | 数组排序(x)
对数组中的元素进行排序 |
4. | array_remove(x,元素)
从数组中删除特定元素 |
5. | 连接(x,y)
连接两个数组 |
6. | 包含(x,元素)
查找数组中的给定元素。如果存在则返回 true,否则返回 false |
7. | 数组位置(x,元素)
查找给定元素在数组中的位置 |
8. | 数组相交(x,y)
执行两个数组之间的交集 |
9. | element_at(数组,索引)
返回数组元素位置 |
10. | 切片(x,开始,长度)
以特定长度对数组元素进行切片 |
Teradata 功能
下表列出了 Teradata 函数。
序列号 | 功能及说明 |
---|---|
1. | 索引(字符串,子字符串)
返回具有给定子字符串的字符串的索引 |
2. | 子串(字符串,开始)
返回给定字符串的子字符串。您可以在此处指定开始索引 |
3. | 子串(字符串,开始,长度)
返回给定字符串的特定起始索引和字符串长度的子字符串 |