云服务器内容精选

  • 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函数和操作符
  • 函数 make_set_digest(x)→setdigest 描述:将所有的输入值X,组合到setdigest中。 SELECT make_set_digest(value) FROM (VALUES 1, 2, 3) T(value); _col0 ------------------------------------------------- 01 10 00 00 00 02 0b 03 00 80 03 44 00 00 58 3d 5b 80 20 08 de 00 20 00 00 03 00 00 00 a8 c0 76 6c a0 20 08 de 4a c4 05 fb b7 03 44 00 0c 8b 48 b2 39 58 3d 5b 01 00 01 00 01 00 (1 row) SELECT make_set_digest(value) FROM (VALUES 'Trino', 'SQL', 'on', 'everything') T(value); _col0 ------------------------------------------------- 01 14 00 00 00 02 0b 04 00 c0 8c 7d 1e c0 75 c9 2d c0 1a 1a 66 03 11 c3 a5 00 20 00 00 04 00 00 00 06 e5 2d 45 05 11 c3 a5 48 85 6b d5 e0 8c 7d 1e b9 1a 8a 39 ff 75 c9 2d 02 ad 0c 7c ed 1a 1a 66 01 00 01 00 01 00 01 00 (1 row) merge_set_digest(setdigest)→setdigest 描述:返回由输入值setdigest聚合组成的setdigest。 cardinality(setdigest)→long 描述:基于内部HyperLogLog组件返回setdigest的基数。 SELECT cardinality(make_set_digest(value)) FROM (VALUES 1, 2, 2, 3, 3,4, 4, 4, 5) T(value); -- 5 intersection_cardinality(x,y)→long 描述:返回两个集合摘要交集的基数估计。其中x,y都是setdigest类型。 SELECT intersection_cardinality(make_set_digest(v1), make_set_digest(v2)) FROM (VALUES (1, 1), (NULL, 2), (2, 3), (3, 4)) T(v1, v2); -- 3 jaccard_index(x,y)→double 描述:返回两个集合摘要的Jaccard索引估计值。其中x,y都是setdigest类型。 SELECT jaccard_index(make_set_digest(v1), make_set_digest(v2)) FROM (VALUES (1, 1), (NULL,2), (2, 3), (NULL, 4)) T(v1, v2); -- 0.5 hash_counts(x) 描述:返回一个包含Murmur3Hash128哈希值及其在属于x的内部MinHash结构中出现的计数的Map。其中x是setdigest类型。 SELECT hash_counts(make_set_digest(value)) FROM (VALUES 1, 1, 1, 2, 2) T(value); -- {19144387141682250=3, -2447670524089286488=2}
  • 逻辑运算符 逻辑运算符 操作 描述 例子 AND 两个值都为true,则为true a AND b OR 两个值其中一个为true,则为true a OR b NOT 值为false,结果则为true NOT a 以下真值表反映了AND和OR如何处理NULL值: a b a AND b a OR b TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE NULL NULL TRUE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE NULL FALSE NULL NULL TRUE NULL TRUE NULL FALSE FALSE NULL NULL NULL NULL NULL 以下真值表反映了NOT如何处理NULL值: value NOT value TRUE FALSE FALSE TRUE NULL NULL 父主题: HetuEngine SQL函数和操作符说明
  • 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
  • Session信息 current_user 描述:返回当前用户。 select current_user; current_user() 参考current_user。 current_catalog 描述:返回当前的catalog名字。 select current_catalog; current_schema 描述:返回当前的schema名字。 select current_schema; 父主题: SQL函数和操作符
  • JSON函数 NULL到JSON的转换并不能简单地实现。从独立的NULL进行转换将产生一个SQLNULL,而不是JSON 'null'。不过,在从包含NULL的数组或Map进行转换时,生成的JSON将包含NULL。 在从ROW转换为JSON时,结果是一个JSON数组,而不是一个JSON对象。这是因为对于SQL中的行,位置比名称更重要。 支持从BOOLEAN、TINYINT、SMALLINT、INTEGER、BIGINT、REAL、DOUBLE或VARCHAR进行转换。当数组的元素类型为支持的类型之一、Map的键类型是VARCHAR且Map的值类型是支持的类型之一或行的每个字段类型是支持的类型之一时支持从ARRAY、MAP或ROW进行转换。下面通过示例展示了转换的行为: SELECT CAST(NULL AS JSON);-- NULL SELECT CAST(1 AS JSON);-- JSON '1' SELECT CAST(9223372036854775807 AS JSON);-- JSON '9223372036854775807' SELECT CAST('abc' AS JSON);-- JSON '"abc"' SELECT CAST(true AS JSON);-- JSON 'true' SELECT CAST(1.234 AS JSON);-- JSON '1.234' SELECT CAST(ARRAY[1, 23, 456] AS JSON);-- JSON '[1,23,456]' SELECT CAST(ARRAY[1, NULL, 456] AS JSON);-- JSON '[1,null,456]' SELECT CAST(ARRAY[ARRAY[1, 23], ARRAY[456]] AS JSON);-- JSON '[[1,23],[456]]' SELECT CAST(MAP(ARRAY['k1', 'k2', 'k3'], ARRAY[1, 23, 456]) AS JSON);-- JSON '{"k1":1,"k2":23,"k3":456}' SELECT CAST(CAST(ROW(123, 'abc', true) AS ROW(v1 BIGINT, v2 VARCHAR, v3 BOOLEAN)) AS JSON);-- JSON '[123,"abc",true]'
  • JSON 转其它类型 SELECT CAST(JSON 'null' AS VARCHAR);-- NULL SELECT CAST(JSON '1' AS INTEGER);-- 1 SELECT CAST(JSON '9223372036854775807' AS BIGINT);-- 9223372036854775807 SELECT CAST(JSON '"abc"' AS VARCHAR);-- abc SELECT CAST(JSON 'true' AS BOOLEAN);-- true SELECT CAST(JSON '1.234' AS DOUBLE);-- 1.234 SELECT CAST(JSON '[1,23,456]' AS ARRAY(INTEGER));-- [1, 23, 456] SELECT CAST(JSON '[1,null,456]' AS ARRAY(INTEGER));-- [1, NULL, 456] SELECT CAST(JSON '[[1,23],[456]]' AS ARRAY(ARRAY(INTEGER)));-- [[1, 23], [456]] SELECT CAST(JSON '{"k1":1, "k2":23, "k3":456}' AS MAP(VARCHAR, INTEGER));-- {k1=1, k2=23, k3=456} SELECT CAST(JSON '{"v1":123, "v2":"abc","v3":true}' AS ROW(v1 BIGINT, v2 VARCHAR, v3 BOOLEAN));-- {v1=123, v2=abc, v3=true} SELECT CAST(JSON '[123, "abc",true]' AS ROW(v1 BIGINT, v2 VARCHAR, v3 BOOLEAN));-- {value1=123, value2=abc, value3=true} SELECT CAST(JSON'[[1, 23], 456]'AS ARRAY(JSON));-- [JSON '[1,23]', JSON '456'] SELECT CAST(JSON'{"k1": [1, 23], "k2": 456}'AS MAP(VARCHAR,JSON));-- {k1 = JSON '[1,23]', k2 = JSON '456'} SELECT CAST(JSON'[null]'AS ARRAY(JSON));-- [JSON 'null']
  • Bitwise函数 bit_count(x, bits) → bigint 计算2的补码表示法中x中设置的位数(视为有符号位的整数)。 SELECT bit_count(9, 64); -- 2SELECT bit_count(9, 8); -- 2SELECT bit_count(-7, 64); -- 62SELECT bit_count(-7, 8); -- 6 bitwise_and(x, y) → bigint 以二进制补码形式返回x和y按位与的结果。 select bitwise_and(8, 7); -- 0 bitwise_not(x) → bigint 以二进制补码形式返回x按位非的结果。 select bitwise_not(8);-- -9 bitwise_or(x, y) → bigint 以二进制补码形式返回x和y按位或的结果。 select bitwise_or(8,7);-- 15 bitwise_xor(x, y) → bigint 以二进制补码形式返回x和y按位异或的结果。 参考聚合函数中的bitwise_and_agg() 和 bitwise_or_agg() 父主题: SQL函数和操作符