云服务器内容精选

  • Data Size parse_presto_data_size函数支持以下单位: 单位 描述 值 B Bytes 1 kB Kilobytes 1024 MB Megabytes 10242 GB Gigabytes 10243 TB Terabytes 10244 PB Petabytes 10245 EB Exabytes 10246 ZB Zettabytes 10247 YB Yottabytes 10248 parse_presto_data_size(string) → decimal(38) 将带单位的格式化的值转为数字,值可以是小数,如下所示: SELECT parse_presto_data_size('1B'); -- 1 SELECT parse_presto_data_size('1kB'); -- 1024 SELECT parse_presto_data_size('1MB'); -- 1048576 SELECT parse_presto_data_size('2.3MB'); -- 2411724
  • Format format(format, args...) → varchar 描述:对一个字符串,按照格式字符串指定的方式进行格式化,并返回。 SELECT format('%s%%',123);-- '123%' SELECT format('%.5f',pi());-- '3.14159' SELECT format('%03d',8);-- '008' SELECT format('%,.2f',1234567.89);-- '1,234,567.89' SELECT format('%-7s,%7s','hello','world');-- 'hello , world' SELECT format('%2$s %3$s %1$s','a','b','c');-- 'b c a' SELECT format('%1$tA, %1$tB %1$te, %1$tY',date'2006-07-04');-- 'Tuesday, July 4, 2006
  • cast转换函数 HetuEngine会将数字和字符值隐式转换成正确的类型。HetuEngine不会把字符和数字类型相互转换。例如,一个查询期望得到一个varchar类型的值,HetuEngine不会自动将bigint类型的值转换为varchar类型。 如果有必要,可以将值显式转换为指定类型。 cast(value AS type) → type 显式转换一个值的类型。可以将varchar类型的值转为数字类型,反过来转换也可以。 select cast('186' as int ); select cast(186 as varchar); try_cast(value AS type) → type 与cast()相似,区别是转换失败返回null。 select try_cast(1860 as tinyint); _col0 ------- NULL (1 row) 当出现数字溢出,null值转换等情况,会返回NULL,但无法转换的情况,还是会报错。 例如:select try_cast(186 as date); Cannot cast integer to date
  • 聚合函数语句 表1 聚合函数语句 语句 说明 示例 COUNT(*) 统计行数。 SELECT COUNT(*) COUNT(DISTINCT expr) 统计字段中去重后的行数,字段值可以是字符串或者数字,返回值为估算值(默认存在2.3%的标准误差)。 SELECT COUNT(DISTINCT host) SUM(expr) 返回数字总和。 SELECT SUM(visitCount) MIN(expr) 返回数字中的最小值。 SELECT MIN(visitCount) MAX(expr) 返回数字中的最大值。 SELECT MAX(visitCount) AVG(expr) 返回平均值。 SELECT AVG(visitCount) EARLIEST(expr) 表达式必须是数值类型的, 返回expr的最早的值, 即查询的时候最先遇到的值。 SELECT EARLIEST(visitCount) LATEST(expr) 表达式必须是数值类型的, 返回expr的最新的值, 即查询的时候最后遇到的值。 SELECT LATEST(visitCount) APPROX_QUANTILE_DS(expr, probability) 计算数值expr的近似分位数,probability应介于0和1之间。 APPROX_QUANTILE_DS(expr, probability)
  • Color 函数 bar(x, width) 描述:使用默认的低频红色和高频绿色渲染ANSI条形图中的单个条形。例如,如果将25%的x和40的宽度传递给此函数。将绘制一个10个字符的红色条形,后跟30个空格,以创建一个40个字符的条形。 bar(x, width, low_color, high_color) 描述:在ANSI条形图中以指定宽度绘制一条直线。参数x是0到1之间的一个双精度值。x的值超出[0,1]范围将被截断为0或1值。low_color和high_color捕获用于水平条形图任一端的颜色。例如,如果x为0.5,宽度为80,low_color为0xFF0000,high_color为0x00FF00,则此函数将返回一个40个字符的条形,该条形由红色(0xFF0000)和黄色(0xFFFF00)组成,其余80个字符条为用空格填充。 select bar(0.75,80,rgb(255,0,0),rgb(0,255,0)); render(b) 描述:根据布尔值返回对错符号。 select render(true),render(false); 父主题: SQL函数和操作符
  • 三角函数 所有三角函数的参数都是以弧度表示。参考单位转换函数degrees()和radians()。 acos(x) → double 求反余弦值。 SELECT acos(-1);-- 3.14159265358979 asin(x) → double 求反正弦值。 SELECT asin(0.5);-- 0.5235987755982989 atan(x) → double 求x的反正切值。 SELECT atan(1);-- 0.7853981633974483 atan2(y, x) → double 返回y/x的反正切值。 SELECT atan2(2,1);-- 1.1071487177940904 cos(x) → double 返回x的余弦值。 SELECT cos(-3.1415927);-- -0.9999999999999989 cosh(x) → double 返回x的双曲余弦值。 SELECT cosh(3.1415967);-- 11.592000006553231 sin(x) → double 求x的正弦值。 SELECT sin(1.57079);-- 0.9999999999799858 tan(x) → double 求x的正切值。 SELECT tan(20);-- 2.23716094422474 tanh(x) → double 求x双曲正切值。 select tanh(3.1415927);-- 0.9962720765661324
  • 浮点函数 infinity() → double 返回表示正无穷大的常数。 select infinity();-- Infinity is_finite(x) → boolean 判断x是否有限值。 select is_finite(infinity());-- false select is_finite(50000);--true is_infinite(x) → boolean 判断x是否无穷大。 select is_infinite(infinity());-- true select is_infinite(50000);--false is_nan(x) → boolean 判断x是否非数字。 --输入的值必须为double类型 select is_nan(null); -- NULL select is_nan(nan()); -- true select is_nan(45);-- false nan() → double 返回表示非数字的常数。 select nan(); -- NaN
  • 示例及说明 ACOS(expr)函数 求参数值的反余弦,y=arccosx,x的取值范围[-1,1]。 字段样例 x:0.5 查询和分析语句 select ACOS(x) 查询和分析结果 表2 查询和分析结果 x EXPR$1 0.5 1.0471975511965979 ATAN(expr)函数 ATAN求参数值的反正切,y= arctanx,x的取值范围R。 字段样例 x:0.5 查询和分析语句 select ATAN(X) 查询和分析结果 表3 查询和分析结果 x EXPR$1 0.5 1.0471975511965979 ATAN2(expr)函数 ATAN2从直角坐标(x,y)到极坐标(r,θ)的转换角度θ。 字段样例 x:3;y:4 查询和分析语句 SELECT x , y, ATAN2(x,y) 查询和分析结果 表4 查询和分析结果 x y EXPR$0 3 4 0.6435011087932844
  • 数学函数语句 表1 数学函数语句 语句 说明 示例 ABS(expr) 取绝对值。 SELECT ABS(fieldname1) CEIL(expr) 向上取整,即向上取最接近的整数值 SELECT CEIL(fieldname1) FLOOR(expr) 向下取整,即向下取最接近的整数值。 SELECT FLOOR(fieldname1) TRUNCATE(expr, digits) 将expr截断为特定的digits位数。如果数字为负数,则会截断小数点左侧的许多位置。如果未指定,数字默认为零。 SELECT TRUNCATE(fieldname1, 2) ROUND(expr, digits) ROUND(expr, digits)对expr值进行四舍五入,保留小数位数由digits指定。expr可以是整数或浮点数,但digits必须是整数。返回值的类型由expr的类型决定。如果没有指定digits,则使用默认值0。如果digits是负数,则返回expr四舍五入后的整数。当expr是非数字值时,会被转换为数字0。如果expr是无限位数的数字,则被转换为最接近的DOUBLE类型的有限位数数字。 SELECT ROUND(fieldname1, 2) x + y 加法。 SELECT fieldname1 + fieldname2 x - y 减法。 SELECT fieldname1 - fieldname2 x * y 乘法。 SELECT fieldname1 * fieldname2 x / y 除法。 SELECT fieldname1 / fieldname2 MOD(x, y) 求余,即取x除以y后的余数。 SELECT MOD(fieldname1, fieldname2) LN(expr) 对数(以e为底)。 SELECT ln(expr) LOG10(expr) 对数(以10为底)。 SELECT LOG10(expr) POWER(expr,power) expr的power次幂。 SELECT POWER(expr ,2) SQRT(expr) expr的平方根 SELECT SQRT(expr) SIN(expr) 正弦 SELECT SIN(expr) COS(expr) 余弦 SELECT COS(expr) TAN(expr) 正切 SELECT TAN(expr) COT(expr) 余切 SELECT COT(expr) ASIN(expr) 反正弦 SELECT ASIN(expr) ACOS(expr) 反余弦 SELECT ACOS(expr) ATAN(expr) 反正切 SELECT ATAN(expr)
  • Session信息 current_user 描述:返回当前用户。 select current_user; current_user() 参考current_user。 current_catalog 描述:返回当前的catalog名字。 select current_catalog; current_schema 描述:返回当前的schema名字。 select current_schema; 父主题: SQL函数和操作符
  • normalize函数 格式化字符串str。 使用NFC格式格式化字符串str。 语法:normalize(str) 使用给定格式格式化字符串str,支持的格式有NFC, NFD, NFKC, NFKD. 语法:normalize(str, form) 表46 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 form 格式化类型。 String 否 返回值类型:String类型 示例:SELECT NORMALIZE('schön'), NORMALIZE('Henry \u2163', 'nfd') 表47 查询分析结果 类型 场景1 场景2 查询语句 NORMALIZE('schön') NORMALIZE('Henry \u2163', 'nfd') 返回结果 schön Henry Ⅳ
  • levenshtein_distance函数 计算两个字符串str1和str2之间的最小编辑距离。 语法:levenshtein_distance(str1, str2) 表44 参数说明 参数名称 描述 类型 是否必选 str1 原始字符串1。 String 是 str2 原始字符串2。 String 是 返回值类型:Integer类型 示例:SELECT LEVENSHTEIN_DISTANCE('horse', 'ros') 表45 查询分析结果 类型 场景 查询语句 LEVENSHTEIN_DISTANCE('horse', 'ros') 返回结果 3
  • character_length函数 与length函数功能一致。 语法:character_length(str) 表40 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 返回值类型:Integer类型 示例:SELECT CHARACTER_LENGTH('HELLO WORLD') 表41 查询分析结果 类型 场景 查询语句 CHARACTER_LENGTH('HELLO WORLD') 返回结果 11
  • char_length函数 与length函数功能一致,如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 语法:char_length(str) 表38 参数说明 参数名称 描述 类型 是否必选 str 原始字符串 String 是 返回值类型:Integer类型 示例:SELECT CHAR_LENGTH('HELLO WORLD') 表39 查询分析结果 类型 场景 查询语句 CHAR_LENGTH('HELLO WORLD') 返回结果 11
  • length函数 如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 语法:length(str) 表36 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 返回值类型:Integer类型 示例:SELECT LENGTH('HELLO WORLD') 表37 查询分析结果 类型 场景1 查询语句 LENGTH('HELLO WORLD') 返回结果 11