Apache Presto 简明教程

Apache Presto - SQL Functions

到目前为止,我们在讨论对 Presto 运行一些基本查询。本章将讨论重要的 SQL 函数。

Math Functions

数学函数处理数学公式。下表详细描述了函数列表。

S.No.

Function & Description

1.

abs(x) 返回 x 的绝对值

2.

cbrt(x) 返回 x 的立方根

3.

ceiling(x) 返回 x 值四舍五入到最接近的整数

4.

ceil(x) Alias for ceiling(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) 返回 y 为基, x 为值的以 y 为基的对数

14.

mod(n,m) 返回 n 除以 m 的模数(余数)

15.

pi() 返回圆周率值。结果将作为双精度浮点数值返回

16.

power(x,p) 返回值 ‘p’x 次方

17.

pow(x,p) Alias for power(x,p)

18.

radians(x) 将角度 x 转换为弧度

19.

rand() Alias for radians()

20.

random()Returns the pseudo-random value

21.

rand(n) Alias for random()

22.

round(x) 返回x的四舍五入值

23.

round(x,d)x 值四舍五入为 ‘d’ 位小数

24.

sign(x) 返回值x的正负号函数,即,当参数为0时返回0,当参数大于0时返回1,当参数小于0时返回-1。对于双精度参数,该函数会另外返回NaN,如果参数为NaN,返回1,如果参数为+Infinity,返回-1,如果参数为-Infinity

25.

sqrt(x) 返回 x 的平方根

26.

to_base(x,radix) 返回值类型为archer。结果作为 x 的基数返回

27.

truncate(x) 截断 x 的值

28.

width_bucket(x, bound1, bound2, n) 返回 x 的bin数,指定的界限1和界限2的界限以及n个桶数

29.

width_bucket(x, bins) 根据数组bins指定的bins返回 x 的bin数

Trigonometric Functions

三角函数参数表示为弧度()。下表列出了这些函数。

S.No

Functions & Description

1.

acos(x) 返回反余弦值(x)

2.

asin(x) 返回反正弦值(x)

3.

atan(x) 返回反正切值(x)

4.

atan2(y,x) 返回反正切值(y/x)

5.

cos(x) Returns the cosine value(x)

6.

cosh(x) 返回双曲余弦值(x)

7.

sin(x)Returns the sine value(x)

8.

tan(x) Returns the tangent value(x)

9.

tanh(x) 返回双曲正切值(x)

Bitwise Functions

下表列出了按位函数。

S.No

Functions & Description

1.

bit_count(x, bits) 计算位数

2.

bitwise_and(x,y) 对两个位执行按位 AND 运算, xy

3.

bitwise_or(x,y) 两个位 x, y 之间的按位 OR 运算

4.

bitwise_not(x) 对位 x 执行按位 NOT 运算

5.

bitwise_xor(x,y) 对位 x, y 执行 XOR 运算

String Functions

下表列出了字符串函数。

S.No

Functions & Description

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) 删除字符串中的前导和尾随空白

Date and Time Functions

下表列出了日期和时间函数。

S.No

Functions & Description

1.

current_dateReturns the current date

2.

current_timeReturns the current time

3.

current_timestampReturns the current timestamp

4.

current_timezone()Returns the current timezone

5.

now() 返回当前日期和具有时区的timestamp

6.

localtimeReturns the local time

7.

localtimestampReturns the local timestamp

Regular Expression Functions

下表列出了正则表达式函数。

S.No

Functions & Description

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 Functions

下表列出了 JSON 函数。

S.No

Functions & Description

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) 返回 value 的大小

URL Functions

下表列出了 URL 函数。

S.No

Functions & Description

1.

url_extract_host(url)Returns the URL’s host

2.

url_extract_path(url)Returns the URL’s path

3.

url_extract_port(url)Returns the URL’s port

4.

url_extract_protocol(url)Returns the URL’s protocol

5.

url_extract_query(url) 返回 URL 的查询字符串

Aggregate Functions

下表列出了汇总函数。

S.No

Functions & Description

1.

avg(x) 返回给定值的平均值

2.

min(x,n) 从两个值中返回最小值

3.

max(x,n) 从两个值中返回最大值

4.

sum(x) 返回 value 的和

5.

count(*) 返回输入行数

6.

count(x) 返回输入值的计数

7.

checksum(x) 返回 x 的校验和

8.

arbitrary(x) 返回 x 的任意值

Color Functions

下表列出了颜色函数。

S.No

Functions & Description

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) 通过 int 参数作为颜色的 RGB 分量的三个值返回一个颜色值,该颜色值的范围为 0 到 255

Array Functions

下表列出了数组函数。

S.No

Functions & Description

1.

array_max(x) 在数组中找到最大元素

2.

array_min(x) 在数组中找到最小元素

3.

array_sort(x) 对数组中的元素进行排序

4.

array_remove(x,element) 从数组中移除特定元素

5.

concat(x,y)Concatenates two arrays

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 Functions

下表列出了 Teradata 函数。

S.No

Functions & Description

1.

index(string,substring) 返回子字符串的字符串索引

2.

substring(string,start) 返回给定字符串的子字符串。可以指定开始索引

3.

substring(string,start,length) 为给定字符串的特定开始索引和长度返回子字符串