【flink sql】函数使用

校验版本为flink 1.13.6
参考链接:fink sql内置函数

算数函数

余数: number1%number2
返回number1除以number2的余数

select 5%3;
-- 2
select 8%5;
-- 3

次方:power(number1,number2)
返回number1的number2次方

select power(2,3);
-- 8
select power(3,6);
-- 729

绝对值:abs(number)
返回number的绝对值

select abs(-6);
-- 6
select abs(9);
-- 9
select abs(0);
-- 0

开跟: sqrt(number)
返回number的根号

select sqrt(9);
-- 3
select sqrt(16);
-- 4

自然对数: ln(number)
返回number的自然对数

select ln(3);
-- 1.0986122886681098
select ln(27);
-- 3.295836866004329

10的对数: log10()
返回以10为底的对数

select log10(10);
-- 1
select log10(100);
-- 2

2的对数: log2()
返回以2为底的对数

select log2(4);
-- 2
select log2(16);
-- 4

指定数的对数: log(number1, number2)
返回以number1为底的对数

select log(2,4);
-- 2
select log(2,16);
-- 4

注: 如果只输入一个参数,则是以自然数为底的对数

自然常数e的次方: exp(number)
返回自然常数e的n次方

select exp(1);
-- 2.718281828459045
select exp(2);
-- 7.38905609893065

向上取整: ceil(number)
返回number的向上整数

select ceil(2.3);
-- 3
select ceil(-2.3);
-- -2

向下取整: floor
返回number的向下整数

select floor(2.3);
-- 2
select floor(-2.3);
-- -3

正弦值: sin(numner)
返回number的正弦值

select sin(30);
-- 

在这里插入图片描述
不应该是0.5的吗???没明白

反正弦值: asin(number)
返回数值的反正弦值

select asin(0.479425538604203);
-- 0.5

双曲正弦: sinh(number)
返回数值的双曲正弦

select sinh(30);
-- 5.343237290762231

余弦值: cos(number)
返回数值的余弦值

select cos(60);
-- -0.9524129804151563

正切值: tan(number)
返回数值的正切值

余切值: cot(number)

四舍五入: round(number,int n)
返回number精度为n的数值

select round(5.325, 2);
-- 5.33
select round(5.324, 2);
-- 5.32

如果没有第二个参数,则返回四舍五入的整数

随机数: rand()
返回0-1的随机数

rand_integer(int1, int2)
返回0-int1的随机数

数字截取: truncare(number1, int1)
返回截断为整数 2 位小数的数字。如果数字 1 或整数 2 为 NULL,则返回 NULL。如果 integer2 为 0,则结果没有小数点或小数部分。integer2 可以为负数,导致值小数点左侧的整数 2 位变为零。此函数还可以只传入一个 numeric1 参数,并且不能设置 Integer2 来使用。如果未设置 Integer2,则该函数将截断,就好像 Integer2 为 0 一样。例如 42.324.截断(2) 到 42.34。和 42.324.truncate() 到 42.0。

字符串函数

字符串拼接:string1 || string2
返回两个字符串拼接的结果

select 'fu' || 'yun';
-- fuyun

字符个数: char_length()
返回字符个数

select char_length('fuyun');
-- 5

字母转换为大写: upper()
返回大写字母

select upper('fuyun');
-- FUYUN

字母转换为小写: ````lower()```
返回小写字母

select lower('Fuyun');
-- fuyun

字符串位置: position(string1 in string2)
返回字符串1在字符串2的位置,位置从1开始,如果不在字符串2中,返回0,如果出现多次,返回第一次出现的位置

select position('u' in 'fuyun');
-- 2
select position('a' in 'fuyun');
-- 0

去除字符串两边的字符串字符串: trim(string1 from string2)
去除字符串2中两边包含字符串1,如果只有一个字符串参数,则去除字符串两边的空格。

select trim(' fu yun ');
-- fu yun
select trim('ab' from 'ab fu yun ab');
--  fu yun 

ltrim(string)去除左边的空格
rtrim(string)去除右边的空格

字符串重复次数: repeat(string, int)

select repeat('i am fuyun.', 2);
-- i am fuyun.i am fuyun.

字符串替换: regexp_replace(string1, string2, string3)
将字符串1中包含字符串2的用字符串3替换,支持正则表达式

select regexp_replace('fuyun', 'u|y', '');
-- fn

replace(string1, string2, string3)同样是替换,不支持正则表达式

overlay(string1 placing string2 from integer int1 [for integer2])
返回一个字符串,该字符串将位置 INT1 中的 INT2(默认情况下为 STRING2 的长度)替换为位置 INT1 中的 STRING2

select overlay('fuyun' placing 'nuyuf' from 3);
-- funuyuf
select overlay('fuyun' placing 'nuyuf' from 3 for 2);
-- funuyufn

未完待续…

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 整体介绍 2 1.1 什么是 Table API 和 Flink SQL 2 1.2 需要引入的依赖 2 1.3 两种 planner(old & blink)的区别 4 第二章 API 调用 5 2.1 基本程序结构 5 2.2 创建表环境 5 2.3 在 Catalog 中注册表 7 2.3.1 表(Table)的概念 7 2.3.2 连接到文件系统(Csv 格式) 7 2.3.3 连接到 Kafka 8 2.4 表的查询 9 2.4.1 Table API 的调用 9 2.4.2 SQL 查询 10 2.5 将 DataStream 转换成表 11 2.5.1 代码表达 11 2.5.2 数据类型与 Table schema 的对应 12 2.6. 创建临时视图(Temporary View) 12 2.7. 输出表 14 2.7.1 输出到文件 14 2.7.2 更新模式(Update Mode) 15 2.7.3 输出到 Kafka 16 2.7.4 输出到 ElasticSearch 16 2.7.5 输出到 MySql 17 2.8 将表转换成 DataStream 18 2.9 Query 的解释和执行 20 1. 优化查询计划 20 2. 解释成 DataStream 或者 DataSet 程序 20 第三章 流处理中的特殊概念 20 3.1 流处理和关系代数(表,及 SQL)的区别 21 3.2 动态表(Dynamic Tables) 21 3.3 流式持续查询的过程 21 3.3.1 将流转换成表(Table) 22 3.3.2 持续查询(Continuous Query) 23 3.3.3 将动态表转换成流 23 3.4 时间特性 25 3.4.1 处理时间(Processing Time) 25 3.4.2 事件时间(Event Time) 27 第四章 窗口(Windows) 30 4.1 分组窗口(Group Windows) 30 4.1.1 滚动窗口 31 4.1.2 滑动窗口 32 4.1.3 会话窗口 32 4.2 Over Windows 33 1) 无界的 over window 33 2) 有界的 over window 34 4.3 SQL 中窗口的定义 34 4.3.1 Group Windows 34 4.3.2 Over Windows 35 4.4 代码练习(以分组滚动窗口为例) 36 第五章 函数(Functions) 38 5.1 系统内置函数 38 5.2 UDF 40 5.2.1 注册用户自定义函数 UDF 40 5.2.2 标量函数(Scalar Functions) 40 5.2.3 表函数(Table Functions) 42 5.2.4 聚合函数(Aggregate Functions) 45 5.2.5 表聚合函数(Table Aggregate Functions) 47

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值