Appendix 
Data Types 
| type | examples | 
|---|---|
| NULL | NULL | 
| INTEGER | 1, -1, 1234567 | 
| FLOAT | 2.3, -3.56, 232.4 | 
| NUMERIC | 1, 2.3 | 
| BOOLEAN | TRUE, FALSE | 
| BYTEA | '0xaa0xbb' :: BYTEA | 
| STRING | "deadbeef" | 
| DATE | DATE '2020-06-10' | 
| TIME | TIME '11:18:30' | 
| TIMESTAMP | TIMESTAMP '2022-01-01T12:00:00+08:00' | 
| INTERVAL | INTERVAL 10 SECOND | 
| JSON | '{"a": 1, "b": 2}' :: JSONB | 
| ARRAY | [1, 2, 3] | 
Keywords 
| keyword | description | 
|---|---|
ABS | absolute value | 
ACOS | arccosine | 
ACOSH | inverse hyperbolic cosine | 
AND | logical and operator | 
ARRAY_CONTAIN | given an array, checks if a search value is contained in the array | 
ARRAY_DISTINCT | returns an array of all the distinct values | 
ARRAY_EXCEPT | ARRAY_DISTINCT except for those also present in the second array | 
ARRAY_INTERSECT | returns an array of all the distinct elements from the intersection of both input arrays | 
ARRAY_JOIN | creates a flat string representation of all elements contained in the given array | 
ARRAY_LENGTH | return the length of the given array | 
ARRAY_MAX | returns the maximum value from the given array of primitive elements | 
ARRAY_MIN | returns the minimum value from the given array of primitive elements | 
ARRAY_REMOVE | removes all elements from the input array equal to the second argument | 
ARRAY_SORT | sort the given array | 
ARRAY_UNION | returns an array of all the distinct elements from the union of both input arrays | 
AS | stream or field name alias | 
ASIN | arcsine | 
ASINH | inverse hyperbolic sine | 
ATAN | arctangent | 
ATANH | inverse hyperbolic tangent | 
AVG | average function | 
BETWEEN | range operator, used with AND | 
BY | do something by certain conditions, used with GROUP or ORDER | 
CEIL | rounds a number UPWARDS to the nearest integer | 
COS | cosine | 
COSH | hyperbolic cosine | 
COUNT | count function | 
CREATE | create a stream / connector | 
DATE | prefix of date constant | 
DAY | interval unit | 
DROP | drop a stream | 
EXP | exponent | 
FLOOR | rounds a number DOWNWARDS to the nearest integer | 
FROM | specify where to select data from | 
GROUP | group values by certain conditions, used with BY | 
HAVING | filter select values by a condition | 
HOPPING | hopping window | 
IFNULL | if the first argument is NULL returns the second, else the first | 
INSERT | insert data into a stream, used with INTO | 
INTERVAL | prefix of interval constant | 
INTO | insert data into a stream, used with INSERT | 
IS_ARRAY | to determine if the given value is an array of values | 
IS_BOOL | to determine if the given value is a boolean | 
IS_DATE | to determine if the given value is a date value | 
IS_FLOAT | to determine if the given value is a float | 
IS_INT | to determine if the given value is an integer | 
IS_NUM | to determine if the given value is a number | 
IS_STR | to determine if the given value is a string | 
IS_TIME | to determine if the given value is a time value | 
JOIN | for joining two streams | 
LEFT | joining type, used with JOIN | 
LEFT_TRIM | trim spaces from the left end of a string | 
LOG | logarithm with base e | 
LOG10 | logarithm with base 10 | 
LOG2 | logarithm with base 2 | 
MAX | maximum function | 
MIN | minimum function | 
MINUTE | interval unit | 
MONTH | interval unit | 
NOT | logical not operator | 
NULLIF | returns NULL if the first argument is equal to the second, otherwise the first | 
OR | logical or operator | 
ORDER | sort values by certain conditions, used with BY | 
OUTER | joining type, used with JOIN | 
REVERSE | reverse a string | 
RIGHT_TRIM | trim spaces from the right end of a string | 
ROUND | rounds a number to the nearest integer | 
SECOND | interval unit | 
SELECT | query a stream | 
SHOW | show something to stdout | 
SIGN | return the sign of a numeric value as an INTEGER | 
SIN | sine | 
SINH | hyperbolic sine | 
SLIDING | sliding window | 
SQRT | square root | 
STREAM | specify a stream, used with CREATE | 
STRLEN | get the length of a string | 
SUM | sum function | 
TAN | tangent | 
TANH | hyperbolic tangent | 
TIME | prefix of the time constant | 
TO_LOWER | convert a string to lowercase | 
TO_STR | convert a value to string | 
TO_UPPER | convert a string to uppercase | 
TRIM | trim spaces from both ends of a string | 
TUMBLING | tumbling window | 
VALUES | specify inserted data, used with INSERT INTO | 
WEEK | interval unit | 
WHERE | filter selected values by a condition | 
WITH | specify properties when creating a stream | 
WITHIN | specify time window when joining two streams | 
YEAR | interval unit | 
Operators 
| operator | description | 
|---|---|
= | equal to | 
<> | not equal to | 
< | less than | 
> | greater than | 
<= | less than or equal to | 
>= | greater than or equal to | 
+ | addition | 
- | subtraction | 
* | multiplication | 
. | access field of a stream | 
[] | access item of an array | 
AND | logical and operator | 
OR | logical or operator | 
:: | type casting | 
-> | JSON access(as JSON) by key | 
->> | JSON access(as text) by key | 
#> | JSON access(as JSON) by path | 
#>> | JSON access(as text) by path | 
Scalar Functions 
| function | description | 
|---|---|
ABS | absolute value | 
ACOS | arccosine | 
ACOSH | inverse hyperbolic cosine | 
ARRAY_CONTAIN | given an array, checks if a search value is contained in the array | 
ARRAY_DISTINCT | returns an array of all the distinct values | 
ARRAY_EXCEPT | ARRAY_DISTINCT except for those also present in the second array | 
ARRAY_INTERSECT | returns an array of all the distinct elements from the intersection of both input arrays | 
ARRAY_JOIN | creates a flat string representation of all elements contained in the given array | 
ARRAY_LENGTH | return the length of the given array | 
ARRAY_MAX | returns the maximum value from the given array of primitive elements | 
ARRAY_MIN | returns the minimum value from the given array of primitive elements | 
ARRAY_REMOVE | removes all elements from the input array equal to the second argument | 
ARRAY_SORT | sort the given array | 
ARRAY_UNION | returns an array of all the distinct elements from the union of both input arrays | 
ASIN | arcsine | 
ASINH | inverse hyperbolic sine | 
ATAN | arctangent | 
ATANH | inverse hyperbolic tangent | 
CEIL | rounds a number UPWARDS to the nearest integer | 
COS | cosine | 
COSH | hyperbolic cosine | 
EXP | exponent | 
FLOOR | rounds a number DOWNWARDS to the nearest integer | 
IFNULL | if the first argument is NULL returns the second, else the first | 
NULLIF | returns NULL if the first argument is equal to the second, otherwise the first | 
IS_ARRAY | to determine if the given value is an array of values | 
IS_BOOL | to determine if the given value is a boolean | 
IS_DATE | to determine if the given value is a date value | 
IS_FLOAT | to determine if the given value is a float | 
IS_INT | to determine if the given value is an integer | 
IS_NUM | to determine if the given value is a number | 
IS_STR | to determine if the given value is a string | 
IS_TIME | to determine if the given value is a time value | 
LEFT_TRIM | trim spaces from the left end of a string | 
LOG | logarithm with base e | 
LOG10 | logarithm with base 10 | 
LOG2 | logarithm with base 2 | 
REVERSE | reverse a string | 
RIGHT_TRIM | trim spaces from the right end of a string | 
ROUND | rounds a number to the nearest integer | 
SIGN | return the sign of a numeric value as an INTEGER | 
SIN | sine | 
SINH | hyperbolic sine | 
SQRT | square root | 
STRLEN | get the length of a string | 
TAN | tangent | 
TANH | hyperbolic tangent | 
TO_LOWER | convert a string to lowercase | 
TO_STR | convert a value to string | 
TO_UPPER | convert a string to uppercase | 
TOPK | topk aggregate function | 
TOPKDISTINCT | topkdistinct aggregate function | 
TRIM | trim spaces from both ends of a string | 
Aggregate Functions 
| function | description | 
|---|---|
AVG | average | 
COUNT | count | 
MAX | maximum | 
MIN | minimum | 
SUM | sum | 
TOPK | top k values as array | 
TOPKDISTINCT | distinct top k values as array |