Flink常用函数

1、比较函数

    = <> >  >= <  <=  注意:select null=null; 返回为nullIS NULL 、 IS NOT NULL  --非空判断value1 IS DISTINCT FROM value2、value1 IS NOT DISTINCT FROM value2、  --不同于value1 BETWEEN [ ASYMMETRIC | S    OR 、AND、NOT boolean、boolean IS FALSE、boolean IS NOT FALSE、boolean IS TRUE、boolean IS NOT TRUE、boolean IS UNKNOWN、boolean IS NOT UNKNOWN--select null=null  IS UNKNOWN; 返回trueYMMETRIC ] value2 AND value3、value1 NOT BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3、 --如:select 1 between 0 and 2; 返回true。默认ASYMMETRIC 表示value1在闭区间内 [value2,value3]string1 LIKE string2 、string1 NOT LIKE string2 --如:select 'abc' like 'a%'; 返回true,用 '用%或_模糊数据'string1 SIMILAR TO string2 、string1 NOT SIMILAR TO string2 --string2 为正则表达式. 但测试失败 select 'fgh34444' SIMILAR TO  '[a-z][0-9]*'; 返回的falsevalue1 IN (value2 [, value3]* )、value1 NOT IN (value2 [, value3]* )、-- select 'abc' in ('abc','e','f'); 返回true,要求类型必须一致(都为字符串,或都为)。select 1 in (1,2,3,4); EXISTS (sub-query)、--select  EXISTS (select 1); 返回true(自查询至少返回一行时)value IN (sub-query)、value NOT IN (sub-query)--select 1 in (select 1); 值等于子查询返回的行(只限于一个值),返回true. select 'abc' in (select 'abc'); OR 、AND、NOT boolean、boolean IS FALSE、boolean IS NOT FALSE、boolean IS TRUE、boolean IS NOT TRUE、boolean IS UNKNOWN、boolean IS NOT UNKNOWN--select null=null  IS UNKNOWN; 返回true

2、逻辑函数

   OR 、AND、NOT boolean、boolean IS FALSE、boolean IS NOT FALSE、boolean IS TRUE、boolean IS NOT TRUE、boolean IS UNKNOWN、boolean IS NOT UNKNOWN--select null=null  IS UNKNOWN; 返回true

3、算术函数

   + numeric、- numeric --返回对应的正负数字+ - * / % 、MOD(numeric1, numeric2) -- select MOD(3,2); 3除以2的余数=1.仅当numeric1为负时结果为负POWER(numeric1, numeric2) --select POWER(2,3); 返回2 的 3次幂=8.0ABS(numeric) --select ABS(-1); 返回绝对值1CEIL(numeric) --向上取整  select CEIL(2.3); 返回3.000000FLOOR(numeric) --向下取整 select FLOOR(2.3); 返回2.000000ROUND(numeric, integer) 取整--select ROUND(2.3,1); 保留1位小数2.30000。--select ROUND(2.3,0); 保留0位小数 2.0000TRUNCATE(numeric1, integer2) --select TRUNCATE(2.3,1);保留1位小数2.30000  select TRUNCATE(2.3,0) 保留0位小数 2.0000RAND() --介于 0.0(含)和 1.0(不含)之间的伪随机双精度值RAND(integer) --介于 0.0(含)和 1.0(不含)之间的伪随机双精度值。两个 RAND 函数具有相同的初始种子,它们将返回相同的数字序列。RAND_INTEGER(integer) --介于 0(含)和整数(不含)之间的伪随机整数值--使用初始种子返回 0(含)和指定值(不含)之间的伪随机整数值UUID() --返回 UUID(通用唯一标识符)字符串(例如,“3d3c68f7-f608-473f-b60c-b0c44ad4cc4e”)。UUID 是使用加密强的伪随机数生成器生成的。BIN(integer) --以二进制格式返回整数的字符串表示形式。如果整数为 NULL,则返回NULL。例如,BIN(4)返回“100”并BIN(12)返回“1100”HEX(numeric 或 string) --以十六进制格式返回整数数值或字符串的字符串表示形式

4、字符串函数

string1 || string2  --拼接--select 'abc' || 'def'; 返回abcdefCHAR_LENGTH(string)  --字符个数--select CHAR_LENGTH('abcdef'); 返回 6 UPPER(string) --转大写--select UPPER('aBc'); 返回 ABCLOWER(string) --转小写--select LOWER('aBc'); 返回abcPOSITION(string1 IN string2) --字串位置--select POSITION('ab' in 'cdabcds'); 返回3TRIM([ BOTH | LEADING | TRAILING ] string1 FROM string2) --默认从两边去除第一个--select TRIM('  abc    ' from '  abcdefabc  '); 返回def 。select TRIM('  abc    '); 返回abc  两边的空格都被删除LTRIM(string) --去除左边的空格RTRIM(string) --去除右边的空格REPEAT(string, integer) --重复字符串整数次--select REPEAT('ab',3); 返回 abababREGEXP_REPLACE(string1, string2, string3) --将string1中符合正则表达式的 替换为 string3--select REGEXP_REPLACE('foobar', 'oo|ar', ''); 返回 fb  OVERLAY(string1 PLACING string2 FROM integer1 [ FOR integer2 ]) --将指定位置的字符串替换--select OVERLAY('This is an old string' PLACING ' new' FROM 10 FOR 5);  返回 This is a new string  --不含FROM 10SUBSTRING(string FROM integer1 [ FOR integer2 ]) --从指定位置截取指定长度的字串--select SUBSTRING('This is an old string'FROM 10 FOR 5);  返回 n old   --含FROM 10REPLACE(string1, string2, string3) --替换--select REPLACE('ababab', 'abab', 'z');  用z替换abab 返回zabREGEXP_EXTRACT(string1, string2[, integer]) --?--select REGEXP_EXTRACT('foothebar', 'foo(.*?)(bar)', 2); 返回 bar  --正则表达式匹配组索引从 1 开始,0 表示匹配整个正则表达式INITCAP(string) --第一个字符转换为大写,其余字符转换为小写--select INITCAP('aBc');  返回 AbcCONCAT(string1, string2,...) --拼接,如果任何参数为 NULL,则返回 NULL。CONCAT_WS(string1, string2, string3,...) --拼接,第一个字符拼接符不为null则不为null--select CONCAT_WS('~', 'AA', NULL, 'BB', '', 'CC');会报错 Illegal use of 'NULL'  --但官网说会跳过null--select CONCAT_WS('~', 'AA', 'BB', '', 'CC'); 返回“AA~BB~~CC”LPAD(string1, integer, string2) --从string1左边填充string2到整数字符的长度。如果string1的长度小于integer,则返回string1缩短为整数字符--LPAD('hi',4,'??')返回“??hi”;LPAD('hi',1,'??')返回“h”。 RPAD(string1, integer, string2) --从右边填充--RPAD('hi',4,'??')返回“hi??”,RPAD('hi',1,'??')返回“h”FROM_BASE64(string) --从string返回 base64 解码的结果;如果字符串为 NULL,则返回NULL。--FROM_BASE64('aGVsbG8gd29ybGQ=')返回“hello world”。TO_BASE64(string) --从string返回 base64 编码的结果;如果字符串为 NULL,则返回NULL。--TO_BASE64('hello world')返回“aGVsbG8gd29ybGQ=”。ASCII(string) --    返回string的第一个字符的数值--ascii('abc')返回 97 (a的ascii码),并ascii(CAST(NULL AS VARCHAR))返回 NULL。CHR(integer) --返回二进制等效于integer的 ASCII 字符.如果整数大于 255,我们将先得到整数除以 255的模数,并返回模数的CHR。如果整数为 NULL,则返回NULL。--chr(97)返回a,chr(353)返回aDECODE(binary, string) ---使用提供的字符集('US-ASCII'、'ISO-8859-1'、'UTF-8'、'UTF-16BE'、'UTF-16LE'、'UTF- 16')--报错ENCODE(string1, string2); --使用指定--select ENCODE('a', 'UTF-8');   --报错INSTR(string1, string2)  --返回string2在string1 中第一次出现的位置--select INSTR('bcab','a'); 返回3LEFT(string, integer) --从左边截取--select LEFT('abc2awe',2);   返回abRIGHT(string, integer) --从右边截取--select RIGHT('abcawe',3); 返回awe 从右边截取3个LOCATE(string1, string2[, integer]) --返回string2中string1在位置integer之后第一次出现的位置。如果未找到,则返回 0--select LOCATE('abcdefabc','a',3); 返回0 --不符合预期PARSE_URL(string1, string2[, string3])--select parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST'); 返回 facebook.comREGEXP(string1, string2) --如果string1 的任何(可能为空)子字符串与 Java 正则表达式string2匹配,则返回 TRUE REVERSE(string) --反转 --select REVERSE('abc'); 返回cba SPLIT_INDEX(string1, string2, integer1) --用分割符分割后取第n个字串(从0开始)--select SPLIT_INDEX('abc|def|ghi','|',2); 返回ghi STR_TO_MAP(string1[, string2, string3]]) --使用分隔符将string1拆分为键/值对后返回一个映射。string2是对分隔符,默认为 ','。而string3是键值分隔符,默认为 '='--select STR_TO_MAP('a=1,b=2,c=3'); 返回 {a=1, b=2, c=3}--select STR_TO_MAP('a:1|b:2|c:3','|',':'); 返回  的结果不符合预期   {=, a=null, 1=null, b=nu~SUBSTR(string[, integer1[, integer2]]) --返回字符串的子字符串,从位置 integer1 开始,长度为 integer2(默认到末尾)。--select substr('abc',1,2); 返回ab

5、时间函数(时间搓单位都是秒)

          timeintervalunit时间单位:SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,或YEAR。select REPLACE('hello world', 'world', 'flink') returns "hello flink"; REPLACE('ababab', 'abab', 'z') returns "zab".select CONCAT('AA', 'BB', 'CC') returns "AABBCC";DATE_FORMAT(timestamp, string) 此功能存在严重错误,暂时不要使用。INTERVAL string range   使用报错--select INTERVAL '10 00:00:00.004' DAY TO SECOND;--select INTERVAL '1' HOUR;  --select INTERVAL '1' MINUTE;CURRENT_DATE        UTC 时区 系统日期--select CURRENT_DATE; 返回 2021-10-08CURRENT_TIME        UTC 时区 系统时间--select CURRENT_TIME; 返回 09:25:28.137CURRENT_TIMESTAMP  UTC 时区 系统时间搓,TIMESTAMP 类型--select CURRENT_TIMESTAMP; 返回 2021-10-08T09:23:15.180  --数据不对,和时区有关系LOCALTIMESTAMP 本地时区系统时间, TIMESTAMP 类型--select LOCALTIMESTAMP; 返回 2021-10-08T17:19:47.787 --时间对LOCALTIME 系统时间字符串(HH:mm:ss)--select LOCALTIME; 返回 17:22:16.212EXTRACT(timeintervalunit FROM temporal) 取日期中的年/月/日 返回整数--select EXTRACT(DAY FROM DATE '2006-06-05'); 返回  日 为 5--select EXTRACT(MONTH FROM DATE '2006-06-05'); 返回  月 为 6--select EXTRACT(YEAR FROM DATE '2006-06-05'); 返回  年 为 2006YEAR(date) 年份--select YEAR(TO_DATE('2021-10-08 08:45:17'));  返回2021QUARTER(date) 几季度--select QUARTER(TO_DATE('2021-10-08 08:45:17'));  返回4MONTH(date) 几月--select MONTH(TO_DATE('2021-10-08 08:45:17'));  返回 10WEEK(date) 几周--select WEEK(TO_DATE('2021-10-08 08:45:17'));  返回 40DAYOFYEAR(date) 一年中的第几天--select DAYOFYEAR(TO_DATE('2021-10-08 08:45:17'));  返回281DAYOFMONTH(date) 一月中的第几天--select DAYOFMONTH(TO_DATE('2021-10-08 08:45:17')); 返回8--select DAYOFMONTH(TO_DATE(FROM_UNIXTIME(1631061917)));  -- 结果:8--select DAYOFMONTH(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP()))); --参数为DATE类型  当前时间为月份中的多少号  14号DAYOFWEEK(date) 一周中的第几天--select DAYOFWEEK(TO_DATE('2021-10-08 08:45:17'));   返回6,实际是5HOUR(timestamp) 返回小时数--select HOUR(TIMESTAMP '2021-09-08 08:45:17'); 返回 8MINUTE(timestamp) 返回分钟数--select MINUTE(TIMESTAMP '2021-09-08 08:45:17'); 返回  45SECOND(timestamp)  返回秒数--select SECOND(TIMESTAMP '2021-09-08 08:45:17'); 返回 17FLOOR(timepoint TO timeintervalunit) 向下取整分钟 --select FLOOR(TIME '12:44:31' TO MINUTE); 返回 12:44 CEIL(timepoint TO timeintervalunit)  向上取整分钟,回合时间点到时间单元timeintervalunit。-- select CEIL(TIME '12:44:31' TO MINUTE); 返回 12:45 (timepoint1, temporal1) OVERLAPS (timepoint2, temporal2)  由 ( timepoint1 , temporal1 ) 和 ( timepoint2 , temporal2 )定义的两个时间间隔重叠,则返回 TRUE --select (TIME '2:55:00', INTERVAL '1' HOUR) OVERLAPS (TIME '3:30:00', INTERVAL '2' HOUR); 返回true--select (TIME '9:00:00', TIME '10:00:00') OVERLAPS (TIME '10:15:00', INTERVAL '3' HOUR); 返回falseDATE string  日期字符串(yyyy-MM-dd)转为 DATE 类型--select Date '2021-09-08'; 返回  2021-09-08TIME string  时间字符串转(HH:mm:ss)为 TIME 类型--select TIME '08:45:17';  返回 08:45:17 TO_DATE(string1[, string2])  将日期时间字符串(yyyy-MM-dd HH:mm:ss)转为 DATE 类型--select TO_DATE(FROM_UNIXTIME(1631061917)) 结果为 2021-09-08 ,因 TO_DATE 是转为日--select TO_DATE('2021-09-08 08:45:17'); 返回 2021-09-08TO_TIMESTAMP(string1[, string2])  将时间字符串转为 TIMESTAMP 类型--select TO_TIMESTAMP('2021-09-08 08:45:17','yyyy-MM-dd HH:mm:ss'); 返回 2021-09-08T08:45:17  到秒--select TO_TIMESTAMP('2021-09-08 08:45','yyyy-MM-dd HH:mm'); 返回 2021-09-08T08:45  到分钟TIMESTAMP string  将时间字符串(“yyyy-MM-dd HH:mm:ss[.SSS]”的形式)转为 TIMESTAMP 类型--select TIMESTAMP '2021-09-08 08:45:17'; 返回 2021-09-08T08:45:17NOW() 系统时间,返回 TIMESTAMP 类型--select NOW(); 返回  2021-10-08T08:50:01.486UNIX_TIMESTAMP() 系统时间搓,返回整数--select UNIX_TIMESTAMP(); 返回 1633680986UNIX_TIMESTAMP(string1[, string2]) 返回整数,时间字符串(默认情况下:yyyy-MM-dd HH:mm:ss 如果未指定)转换为 Unix 时间戳(以秒为单位)。--select UNIX_TIMESTAMP('2021-09-08 08:45:17','yyyy-MM-dd HH:mm:ss'); 返回 1631061917FROM_UNIXTIME(numeric[, string])  将整数转为时间 字符串(默认为 'yyyy-MM-dd HH:mm:ss') 类型--select FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyy-MM-dd HH:mm');  返回 2021-10-08 16:28  到分钟--select FROM_UNIXTIME(1631061917);    返回 2021-09-08 08:45:17 --select FROM_UNIXTIME(UNIX_TIMESTAMP()); 返回当前日期  2021-10-08 16:18:32 --select FROM_UNIXTIME(1631061917) >TIMESTAMPADD(MINUTE, -5, NOW());  --结果: falseTIMESTAMPDIFF(timepointunit, timepoint1, timepoint2)  时间搓差。--select TIMESTAMPDIFF(MINUTE,TIMESTAMP FROM_UNIXTIME(place_time/1000),  UNIX_TIMESTAMP())<5  --近5分钟--select TIMESTAMPDIFF(MINUTE, TIMESTAMP '2003-01-03 10:10:00', TIMESTAMP '2003-01-03 10:00:00');  --结果为-10  后面-前面的 分钟差.TIMESTAMPADD(timeintervalunit, interval, timepoint)   向前/后推时间。timeintervalunit时间单位:SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,QUARTER,或YEAR。--select TIMESTAMPADD(MINUTE, -5, NOW()) ;  --当前时间往前推5分钟: 2021-10-08T08:33:48.108   ,但可能因时区原因有显示的时间有差异--select TIMESTAMPADD(SECOND, -5, TO_DATE(FROM_UNIXTIME(1631061917)));   --按 天取整后 往前推5秒结果:2021-09-07T23:59:55 .往前推5秒钟  1631061917为 2021-09-08 08:45:17CONVERT_TZ(string1, string2, string3) 将日期时间格式字符串 从时区string2转换为时区string3--select CONVERT_TZ('1970-01-01 00:00:00', 'UTC', 'America/Los_Angeles');  返回 1969-12-31 16:00:00

6、条件函数

    CASE value WHEN value1_1  THEN result1 ELSE resultZ  END   满足某一个值 --select CASE 'a' WHEN 'a'  THEN 1 ELSE 0  END;  返回 1 --select CASE 'b' WHEN 'a'  THEN 1 ELSE 0  END;  返回 0CASE WHEN condition1 THEN result1 ELSE resultZ END  满足某一个条件时--select CASE  WHEN 10>5  THEN 1 ELSE 0  END;  返回 1--select CASE  WHEN  4>5   THEN 1 ELSE 0  END;  返回 0NULLIF(value1, value2)  等值判断:如果value1等于value2则返回 NULL ;否则返回value1。--NULLIF(5, 5)返回NULL;NULLIF(5, 0)返回 5。COALESCE(value1, value2 [, value3 ]* )  返回第一个不为 NULL 的值--select COALESCE(NULL, 5,3); 返回5IF(condition, true_value, false_value) --select IF(10>5,1,0); 返回 1IS_ALPHA(string)  字符串中的所有字符都是字母,则返回真,否则返回假。--select IS_ALPHA('abc'); 返回true--select IS_ALPHA('abc1'); 返回falseIS_DECIMAL(string) 如果string可以解析为有效数字,则返回 true ,否则返回 false。--select IS_DECIMAL('123'); 返回true--select IS_DECIMAL('abc1'); 返回falseIS_DIGIT(string) 如果字符串中的所有字符都是数字,则返回真,否则返回假。--select IS_DIGIT('123'); 返回true--select IS_DIGIT('abc1'); 返回false

7、类型强转函数

    CAST(value AS type) 强转--select CAST('42' AS INT); 返回 42;--select CAST(NULL AS VARCHAR); 返回 VARCHAR 类型的 NULL。

8、集合函数

    array [ value1,value2... ] 构建 数组 数组名[n]  取数组的第n个元素。索引从 1 开始--select arr[2] from (select array [1,4,5] arr)t;  返回 4--select array ['a','b','c']; 返回 [a, b, c]map [key1,value1,key2,value2]  构建map集合集合名[key值] 取key对应的value--select  mp[2] from (select map [1,'a',2,'b'] mp)t; 返回 b--select map [1,'a',2,'b']; 返回   {1=a, 2=b} CARDINALITY(map) 返回map 中的条目数 。--select CARDINALITY(map [1,'a',2,'b']); 返回 2CARDINALITY(array) 返回array 中的元素个数。select CARDINALITY(array [1,2,3,0,0]); 返回5ELEMENT(array) 返回数组的唯一元素(其基数应为 1);如果数组为空,则返回 NULL 。如果数组有多个元素,则抛出异常。--select ELEMENT(array [1,2,3,0,0]) ;  --执行失败--select ELEMENT(array [2]) ; 返回2

9、值访问函数

    tableName.compositeType.field  按名称从 Flink 复合类型(例如,Tuple、POJO)返回字段的值。tableName.compositeType.*  返回 Flink 复合类型(例如,Tuple、POJO)的平面表示,将其

10、分组功能

    GROUP_ID() 返回唯一标识分组键组合的整数。GROUPING(expression1 [, expression2]* )GROUPING_ID(expression1 [, expression2]* )返回给定分组表达式的位向量。

11、哈希函数

    MD5(string) 以 32 个十六进制数字的字符串形式返回string的 MD5 哈希值;如果字符串为 NULL,则返回NULL。SHA1(string) 以 40 个十六进制数字的字符串形式返回string的 SHA-1 哈希值;如果字符串为 NULL,则返回NULL。SHA224(string) 以 56 个十六进制数字的字符串形式返回string的 SHA-224 哈希值;如果字符串为 NULL,则返回NULL。SHA256(string) 以 64 个十六进制数字的字符串形式返回string的 SHA-256 哈希值;如果字符串为 NULL,则返回NULL。SHA384(string) 以 96 个十六进制数字的字符串形式返回string的 SHA-384 哈希值;如果字符串为 NULL,则返回NULL。SHA512(string) 以 128 个十六进制数字的字符串形式返回string的 SHA-512 哈希值;如果字符串为 NULL,则返回NULL。SHA2(string, hashLength) 使用 SHA-2 系列散列函数(SHA-224、SHA-256、SHA-384 或 SHA-512)返回散列。第一个参数字符串是要散列的字符串,第二个参数hashLength是结果的位长(224、256、384或 512)。如果string或hashLength为 NULL,则返回NULL

12、聚合函数

    COUNT([ ALL ] expression | DISTINCT expression1 [, expression2]*) 默认情况下或使用 ALL,返回表达式不为 NULL的输入行数。对每个值的一个唯一实例使用 DISTINCT。COUNT(*) COUNT(1) 返回输入行数。AVG([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回所有输入行中表达式的平均值(算术平均值)。对每个值的一个唯一实例使用 DISTINCT。SUM([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回所有输入行的表达式总和。对每个值的一个唯一实例使用 DISTINCT。MAX([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回所有输入行中表达式的最大值。对每个值的一个唯一实例使用 DISTINCT。MIN([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回所有输入行中表达式的最小值。对每个值的一个唯一实例使用 DISTINCT。STDDEV_POP([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回所有输入行中表达式的总体标准偏差。对每个值的一个唯一实例使用 DISTINCT。STDDEV_SAMP([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回所有输入行中表达式的样本标准偏差。对每个值的一个唯一实例使用 DISTINCT。VAR_POP([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回所有输入行中表达式的总体方差(总体标准差的平方)。对每个值的一个唯一实例使用 DISTINCT。VAR_SAMP([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回所有输入行中表达式的样本方差(样本标准差的平方)。对每个值的一个唯一实例使用 DISTINCT。COLLECT([ ALL | DISTINCT ] expression) 默认情况下或使用关键字 ALL,返回跨所有输入行的多组表达式。NULL 值将被忽略。对每个值的一个唯一实例使用 DISTINCT。VARIANCE([ ALL | DISTINCT ] expression) VAR_SAMP() 的同义词。仅在眨眼规划器中受支持。RANK() 返回值在一组值中的排名。结果是 1 加上分区顺序中当前行之前或等于当前行的行数。这些值将在序列中产生间隙。仅在眨眼规划器中受支持。DENSE_RANK() 返回值在一组值中的排名。结果是一加先前分配的等级值。与函数 rank 不同,dense_rank 不会在排名序列中产生间隙。仅在眨眼规划器中受支持。ROW_NUMBER() 根据窗口分区内行的顺序,为每一行分配一个唯一的序列号,从一开始。ROW_NUMBER 和 RANK 相似。ROW_NUMBER 按顺序对所有行进行编号(例如 1、2、3、4、5)。RANK 为平局提供相同的数值(例如 1、2、2、4、5)。仅在眨眼规划器中受支持。LEAD(expression [, offset] [, default] ) 返回窗口中当前行之前偏移第 th 行处的expression值。的默认值的偏移是1和默认值默认为NULL。仅在眨眼规划器中受支持。LAG(expression [, offset] [, default]) 返回窗口中当前行后偏移第 th 行处的expression值。的默认值的偏移是1和默认值默认为NULL。 仅在眨眼规划器中受支持。FIRST_VALUE(expression) 返回一组有序值中的第一个值。 仅在眨眼规划器中受支持。LAST_VALUE(expression) 返回一组有序值中的最后一个值。仅在眨眼规划器中受支持。LISTAGG(expression [, separator]) 连接字符串表达式的值并在它们之间放置分隔符值。字符串末尾不添加分隔符。分隔符的默认值为“,”。仅在眨眼规划器中受支持。



51链接:​​​​​​​FlinkSql常用函数_江南独孤客的技术博客_51CTO博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware虚拟机---Ubuntu无法连接网络该怎么解决?

在学习使用Linux系统时&#xff0c;由于多数同学们的PC上多是Windows系统&#xff0c;故会选择使用VMware创建一个虚拟机来安装Linux系统进行学习。 安装完成之后&#xff0c;在使用时总是会遇到各种各样的问题。本片随笔就主要针对可能出现的网络问题进行一个总结&#xff0c;…

物种气候生态位动态量化与分布特征模拟

在全球气候快速变化的背景下&#xff0c;理解并预测生物种群如何应对气候变化&#xff0c;特别是它们的地理分布如何变化&#xff0c;已经变得至关重要。利用R语言进行物种气候生态位动态量化与分布特征模拟&#xff0c;不仅可以量化描述物种对环境的需求和适应性&#xff0c;预…

限流算法深入

限流定义及目的 当系统流量达到系统或下游承受能力的阈值时对系统进行限流控制以防止系统或下游挂掉&#xff0c;减少影响面。 限流组成&#xff1a;阈值及限流策略。阈值是指系统单位时间接收到的请求qps总数&#xff1b;限流策略是指限流行业触发后对应的系统行为&#xff…

FPGA GTX全网最细讲解,aurora 8b/10b协议,HDMI板对板视频传输,提供2套工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX 接收接口GTX IP核调用和使用 4、设计思路框架视频源选择IT6802解码芯片配置及采集动态彩条视频数据组包GTX aurora 8b/10b数据…

Django(5)-视图函数和模板渲染

Django 中的视图的概念是「一类具有相同功能和模板的网页的集合」 在我们的投票应用中&#xff0c;我们需要下列几个视图&#xff1a; 问题索引页——展示最近的几个投票问题。 问题详情页——展示某个投票的问题和不带结果的选项列表。 问题结果页——展示某个投票的结果。 投…

SVN 项目管理笔记

SVN 项目管理笔记 主要是介绍 SVN 管理项目的常用操作&#xff0c;方便以后查阅&#xff01;&#xff01;&#xff01; 一、本地项目提交到SVN流程 在SVN仓库下创建和项目名同样的文件夹目录&#xff1b;选中本地项目文件&#xff0c;选择SVN->checkout,第一个是远程仓库项…

大数据Flink实时计算技术

1、架构 2、应用场景 Flink 功能强大&#xff0c;支持开发和运行多种不同种类的应用程序。它的主要特性包括&#xff1a;批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。在启用高可用选项的情况下&#xff0c;它不存在单点失效问题。事实证明&#…

vue 学习笔记 简单实验

1.代码(html) <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"counter">Counter: {{ counter }} </div> <script> const Counter {data() {return {counter: 5}} } Vue.cr…

java-便签

--其实最痛的。不是离别。而是离别后的那些回忆。 java length( ) javalength中文占多长 1.一个中文字符或符号 2 个字节&#xff0c;一个英文字符或符号 1 个字节。 System.out.println("abc你好&#xff0c;".getBytes("gbk").length); System.out.pr…

【Linux】【驱动】驱动挂载的时候给驱动传递参数

【Linux】【驱动】驱动挂载的时候给驱动传递参数 绪论1.什么是驱动传参驱动传参就是传递参数给我们的驱动举例:2.驱动传参数有什么作用呢?3. 传递单个参数使用如下的数组4. 传递数组使用以下函数&#xff1a; 传递数字值代码指令 传递数组代码传递数组指令 绪论 1.什么是驱动…

C语言(第二十九天)

1.2.2 文件结构设计 之前学习了多文件的形式对函数的声明和定义&#xff0c;这里我们实践一下&#xff0c;我们设计三个文件&#xff1a; test.c //文件中写游戏的测试逻辑 game.c //文件中写游戏中函数的实现等 game.h //文件中写游戏需要的数据类型和函数声明等 2. 扫雷游戏的…

如何拼接两个视频在一起?

如何拼接两个视频在一起&#xff1f;在度过一个美好周末的时候&#xff0c;我和朋友一起拍摄了两组视频&#xff0c;准备将两个视频合并成一个并发布到朋友圈。这个想法非常棒&#xff0c;但是我在第一步就遇到了麻烦&#xff1a;如何将这两个视频拼接在一起&#xff1f;这听起…

Go 自学:struct结构体

以下代码展示如何建立一个结构体struct。 我们可以使用%v查看结构体的详情。 package mainimport ("fmt" )func main() {Jeff : User{"Jeff", "Jeffgo.dev", true, 16}fmt.Println((Jeff))fmt.Printf("Jeff details are: %v\n", Jeff…

7天GMV达220万美元!TikTok Shop爆品榜出炉。

7天GMV达220万美元&#xff01;TikTok Shop爆品榜出炉 8月28日消息&#xff0c;据跨境指南联合TikTok数据分析平台EchoTik发布的数据&#xff0c;监测了上周TikTok Shop印尼、马来西亚、泰国、美国市场GMV前10的商品。上周在印尼市场GMV排名前10的商品中&#xff1a;FREE ONGK…

RPA是什么样的机器人技术?RPA可以实现哪些流程的自动化?

一、RPA是什么样的机器人技术&#xff1f; RPA&#xff08;Robotic Process Automation&#xff09;即机器人流程自动化&#xff0c;是一种通过模拟人类在计算机系统上的操作&#xff0c;实现流程自动化的技术。RPA机器人可以代替人工执行各种重复性任务&#xff0c;如数据输入…

基于微服务、Java、Springcloud、Vue、MySQL开发的智慧工地管理系统源码

智慧工地聚焦施工现场岗位一线&#xff0c;围绕“人、机、料、法、环”五大要素&#xff0c;数字化工地平台与现场多个子系统的互联实现了工地业务间的互联互通和协同共享。数字化工地管理平台能够盘活工地各大项目之间孤立的信息系统&#xff0c;实现数据的统一接入、处理与维…

【Spring Boot】Spring Boot实现完整论坛功能示例代码

以下是一个简单的Spring Boot论坛系统示例代码&#xff1a; 首先是数据库设计&#xff0c;我们创建以下几张表&#xff1a; user表&#xff0c;存储用户信息&#xff0c;包括id、username、password、email、create_time等字段。topic表&#xff0c;存储帖子信息&#xff0c;…

迅睿系统二开自定义函数和插件的自定义函数

全局的自定义函数&#xff1a; 全局的自定义函数文件&#xff1a;dayrui/My/Helper.php 此文件用于放网站自定义函数&#xff0c;程序会自动加载 当前站点的自定义函数文件&#xff1a;网站主目录/config/custom.php 插件的自定义函数&#xff1a; 基于App目录下的插件或模块…

辉瑞乡村振兴战略下传统村落文化旅游设计小红书中美德少许

辉瑞乡村振兴战略下传统村落文化旅游设计小红书中美德少许

你会使用druid数据库连接池吗???

1.下载架包。下载地址&#xff1a;https://note.youdao.com/ynoteshare/index.html?id61e2cc939390acc9c7e5017907e98044&typenote&_time1693296531722 2.将架包加入项目文件。 创建一个lib目录&#xff0c;将架包复制进去 右键点击lib目录&#xff0c;将其添加为库。…