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.

in()

返回 pi 值。 结果将以双精度值形式返回

16. power(x,p)

返回值'p'到值x的幂

17.

pow(x,p)

幂(x,p)的别名

18. radians(x)

将角度x转换为弧度

19.

rand()

弧度()的别名

20。 random()

返回伪随机值

21.

rand(n)

random() 的别名

22. round(x)

返回 x 的舍入值

23.

round(x,d)

x 值四舍五入到 'd' 小数位

24.

sign(x)

返回 x 的正负号函数,即

如果参数为 0,则为 0

如果参数大于 0,则为 1

如果参数小于 0,则为-1

对于双参数,该函数还返回 −

如果参数为 NaN,则为 NaN

如果参数为 +Infinity,则为 1

-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. bucket_width(x, bin)

根据数组bins指定的bin返回x的bin号

三角函数

三角函数的参数表示为 radians()。 下表列出了这些功能。

S.No 函数及描述
1. acos(x)

返回反余弦值(x)

2.

asin(x)

返回 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)

xy两位进行按位AND运算

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)

返回与模式匹配的字符串。 如果返回字符串,则值为 true,否则为 false

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 函数

下表列出了 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(*)

返回输入行数

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 颜色代码呈现绿色 true 或红色 false

6.

rgb(red, green, blue)

返回一个颜色值,捕获三个分量颜色值的 RGB 值,以 int 参数的形式提供,范围从 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)

查找数组中给定的元素。 如果存在则返回 true,否则返回 false

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)

返回给定字符串中指定起始索引和字符串长度的子字符串