SQL functions
This page lists the available Apache Druid ® SQL functions in alphabetical order. For more specific information, see the following pages:
- Overview and syntax
- Aggregation functions
- Financial functions
- JSON functions
- Multi-value string functions
- Operators
- Scalar functions
- Time series functions
- Window functions
Not all Druid SQL functions are available in Imply Polaris.
ABS
ABS(<NUMERIC>)
Calculates the absolute value of a numeric expression.
ACOS
ACOS(<NUMERIC>)
Calculates the arc cosine of a numeric expression.
ANY_VALUE
ANY_VALUE(expr, [maxBytesPerValue, [aggregateMultipleValues]])
Returns any value of the specified expression.
APPROX_COUNT_DISTINCT
APPROX_COUNT_DISTINCT(expr)
Counts distinct values of a regular column or a prebuilt sketch column.
APPROX_COUNT_DISTINCT_BUILTIN(expr)
Counts distinct values of a string, numeric, or hyperUnique
column using Druid's built-in cardinality
or hyperUnique
aggregators.
APPROX_COUNT_DISTINCT_DS_HLL
APPROX_COUNT_DISTINCT_DS_HLL(expr, [<NUMERIC>, <CHARACTER>])
Counts distinct values of an HLL sketch column or a regular column.
APPROX_COUNT_DISTINCT_DS_THETA
APPROX_COUNT_DISTINCT_DS_THETA(expr, [<NUMERIC>])
Counts distinct values of a Theta sketch column or a regular column.
APPROX_QUANTILE
APPROX_QUANTILE(expr, <NUMERIC>, [<NUMERIC>])
Deprecated in favor of APPROX_QUANTILE_DS
.
APPROX_QUANTILE_DS
APPROX_QUANTILE_DS(expr, <NUMERIC>, [<NUMERIC>])
Computes approximate quantiles on a Quantiles sketch column or a regular numeric column.
APPROX_QUANTILE_FIXED_BUCKETS
APPROX_QUANTILE_FIXED_BUCKETS(expr, <NUMERIC>, <NUMERIC>, <NUMERIC>, <NUMERIC>, [<CHARACTER>])
Computes approximate quantiles on fixed buckets histogram column or a regular numeric column.
ARRAY[]
ARRAY[expr1, expr2, ...]
Constructs a SQL ARRAY literal from the expression arguments. The arguments must be of the same type.
ARRAY_AGG
ARRAY_AGG([DISTINCT] expr, [<NUMERIC>])
Returns an array of all values of the specified expression.
ARRAY_APPEND
ARRAY_APPEND(arr1, expr)
Appends expr
to arr
, the resulting array type determined by the type of arr1
.
ARRAY_CONCAT
ARRAY_CONCAT(arr1, arr2)
Concatenates arr2
to arr1
. The resulting array type is determined by the type of arr1
.|
ARRAY_CONCAT_AGG
ARRAY_CONCAT_AGG([DISTINCT] expr, [<NUMERIC>])
Concatenates array inputs into a single array.
ARRAY_CONTAINS
ARRAY_CONTAINS(arr, expr)
If expr
is a scalar type, returns true if arr
contains expr
. If expr
is an array, returns 1 if arr
contains all elements of expr
. Otherwise returns false.
ARRAY_LENGTH
ARRAY_LENGTH(arr)
Returns length of the array expression.
ARRAY_OFFSET
ARRAY_OFFSET(arr, long)
Returns the array element at the 0-based index supplied, or null for an out of range index.
ARRAY_OFFSET_OF
ARRAY_OFFSET_OF(arr, expr)
Returns the 0-based index of the first occurrence of expr
in the array. If no matching elements exist in the array, returns null
or -1
if druid.generic.useDefaultValueForNull=true
(deprecated legacy mode).
ARRAY_ORDINAL
ARRAY_ORDINAL(arr, long)
Returns the array element at the 1-based index supplied, or null for an out of range index.
ARRAY_ORDINAL_OF
ARRAY_ORDINAL_OF(arr, expr)
Returns the 1-based index of the first occurrence of expr
in the array. If no matching elements exist in the array, returns null
or -1
if druid.generic.useDefaultValueForNull=true
(deprecated legacy mode).
ARRAY_OVERLAP
ARRAY_OVERLAP(arr1, arr2)
Returns true if arr1
and arr2
have any elements in common, else false.
SCALAR_IN_ARRAY
SCALAR_IN_ARRAY(expr, arr)
Returns true if the scalar expr
is present in arr
. Otherwise, returns false if the scalar expr
is non-null or
UNKNOWN
if the scalar expr
is NULL
.
Returns UNKNOWN
if arr
is NULL
.
ARRAY_PREPEND
ARRAY_PREPEND(expr, arr)
Prepends expr
to arr
at the beginning, the resulting array type determined by the type of arr
.
ARRAY_SLICE
ARRAY_SLICE(arr, start, end)
Returns the subarray of arr
from the 0-based index start
(inclusive) to end
(exclusive). Returns null
, if start
is less than 0, greater than length of arr
, or greater than end
.
ARRAY_TO_MV
ARRAY_TO_MV(arr)
Converts an ARRAY
of any type into a multi-value string VARCHAR
.
ARRAY_TO_STRING
ARRAY_TO_STRING(arr, str)
Joins all elements of arr
by the delimiter specified by str
.
ASIN
ASIN(<NUMERIC>)
Calculates the arc sine of a numeric expression.
ATAN
ATAN(<NUMERIC>)
Calculates the arc tangent of a numeric expression.
ATAN2
ATAN2(<NUMERIC>, <NUMERIC>)
Calculates the arc tangent of the two arguments.
AVG
AVG(<NUMERIC>)
Calculates the average of a set of values.
BIT_AND
BIT_AND(expr)
Performs a bitwise AND operation on all input values.
BIT_OR
BIT_OR(expr)
Performs a bitwise OR operation on all input values.
BIT_XOR
BIT_XOR(expr)
Performs a bitwise XOR operation on all input values.
BITWISE_AND
BITWISE_AND(expr1, expr2)
Returns the bitwise AND between the two expressions, that is, expr1 & expr2
.
BITWISE_COMPLEMENT
BITWISE_COMPLEMENT(expr)
Returns the bitwise NOT for the expression, that is, ~expr
.
BITWISE_CONVERT_DOUBLE_TO_LONG_BITS
BITWISE_CONVERT_DOUBLE_TO_LONG_BITS(expr)
Converts the bits of an IEEE 754 floating-point double value to a long.
BITWISE_CONVERT_LONG_BITS_TO_DOUBLE
BITWISE_CONVERT_LONG_BITS_TO_DOUBLE(expr)
Converts a long to the IEEE 754 floating-point double specified by the bits stored in the long.
BITWISE_OR
BITWISE_OR(expr1, expr2)
Returns the bitwise OR between the two expressions, that is, expr1 | expr2
.
BITWISE_SHIFT_LEFT
BITWISE_SHIFT_LEFT(expr1, expr2)
Returns a bitwise left shift of expr1, that is, expr1 << expr2
.
BITWISE_SHIFT_RIGHT
BITWISE_SHIFT_RIGHT(expr1, expr2)
Returns a bitwise right shift of expr1, that is, expr1 >> expr2
.
BITWISE_XOR
BITWISE_XOR(expr1, expr2)
Returns the bitwise exclusive OR between the two expressions, that is, expr1 ^ expr2
.
BLOOM_FILTER
BLOOM_FILTER(expr, <NUMERIC>)
Computes a Bloom filter from values produced by the specified expression.
BLOOM_FILTER_TEST
BLOOM_FILTER_TEST(expr, <STRING>)
Returns true if the expression is contained in a Base64-serialized Bloom filter.
BTRIM
BTRIM(<CHARACTER>, [<CHARACTER>])
Trims characters from both the leading and trailing ends of an expression.
CASE
CASE expr WHEN value1 THEN result1 \[ WHEN value2 THEN result2 ... \] \[ ELSE resultN \] END
Returns a result based on a given condition.
CAST
CAST(value AS TYPE)
Converts a value into the specified data type.
CEIL (date and time)
CEIL(<TIMESTAMP> TO <TIME_UNIT>)
Rounds up a timestamp by a given time unit.
CEIL (numeric)
CEIL(<NUMERIC>)
Calculates the smallest integer value greater than or equal to the numeric expression.
CHAR_LENGTH
CHAR_LENGTH(expr)
Alias for LENGTH
.
CHARACTER_LENGTH
CHARACTER_LENGTH(expr)
Alias for LENGTH
.
COALESCE
COALESCE(expr, expr, ...)
Returns the first non-null value.
CONCAT
CONCAT(expr, expr...)
Concatenates a list of expressions.
CONTAINS_STRING
CONTAINS_STRING(<CHARACTER>, <CHARACTER>)
Finds whether a string is in a given expression, case-sensitive.
COS
COS(<NUMERIC>)
Calculates the trigonometric cosine of an angle expressed in radians.
COT
COT(<NUMERIC>)
Calculates the trigonometric cotangent of an angle expressed in radians.
COUNT
COUNT([DISTINCT] expr)
COUNT(*)
Counts the number of rows.
CUME_DIST
CUME_DIST()
Returns the cumulative distribution of the current row within the window calculated as number of window rows at the same rank or higher than current row
/ total window rows
. The return value ranges between 1/number of rows
and 1.
CURRENT_DATE
CURRENT_DATE
Returns the current date in the connection's time zone.
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP
Returns the current timestamp in the connection's time zone.
DATE_EXPAND
Returns the current timestamp in the connection's time zone.
DATE_TRUNC
DATE_TRUNC(<CHARACTER>, <TIMESTAMP>)
Rounds down a timestamp by a given time unit.
DECODE_BASE64_COMPLEX
DECODE_BASE64_COMPLEX(dataType, expr)
Decodes a Base64-encoded string into a complex data type, where dataType
is the complex data type and expr
is the Base64-encoded string to decode.
DECODE_BASE64_UTF8
DECODE_BASE64_UTF8(expr)
Decodes a Base64-encoded string into a UTF-8 encoded string.
DEGREES
DEGREES(<NUMERIC>)
Converts an angle from radians to degrees.
DENSE_RANK
DENSE_RANK()
Returns the rank for a row within a window without gaps. For example, if two rows tie for a rank of 1, the subsequent row is ranked 2.
DIV
DIV(x, y)
Returns the result of integer division of x
by y
.
The DIV
function is not implemented in Druid versions 30.0.0 or earlier. Consider using SAFE_DIVIDE
instead.
DS_CDF
DS_CDF(expr, splitPoint0, splitPoint1, ...)
Returns a string representing an approximation to the Cumulative Distribution Function given the specified bin definition.
DS_GET_QUANTILE
DS_GET_QUANTILE(expr, fraction)
Returns the quantile estimate corresponding to fraction
from a quantiles sketch.
DS_GET_QUANTILES
DS_GET_QUANTILES(expr, fraction0, fraction1, ...)
Returns a string representing an array of quantile estimates corresponding to a list of fractions from a quantiles sketch.
DS_HISTOGRAM
DS_HISTOGRAM(expr, splitPoint0, splitPoint1, ...)
Returns a string representing an approximation to the histogram given the specified bin definition.
DS_HLL
DS_HLL(expr, [lgK, tgtHllType])
Creates an HLL sketch on a column containing HLL sketches or a regular column.
DS_QUANTILE_SUMMARY
DS_QUANTILE_SUMMARY(expr)
Returns a string summary of a quantiles sketch.
DS_QUANTILES_SKETCH
DS_QUANTILES_SKETCH(expr, [k])
Creates a Quantiles sketch on a column containing Quantiles sketches or a regular column.
DS_RANK
DS_RANK(expr, value)
Returns an approximate rank between 0 and 1 of a given value, in which the rank signifies the fraction of the distribution less than the given value.
DS_THETA
DS_THETA(expr, [size])
Creates a Theta sketch on a column containing Theta sketches or a regular column.
DS_TUPLE_DOUBLES
DS_TUPLE_DOUBLES(expr, [nominalEntries])
DS_TUPLE_DOUBLES(dimensionColumnExpr, metricColumnExpr, ..., [nominalEntries])
Creates a Tuple sketch which contains an array of double values as the Summary Object. If the last value of the array is a numeric literal, Druid assumes that the value is an override parameter for nominal entries.
DS_TUPLE_DOUBLES_INTERSECT
DS_TUPLE_DOUBLES_INTERSECT(expr, ..., [nominalEntries])
Returns an intersection of Tuple sketches which each contain an array of double values as their Summary Objects. The values contained in the Summary Objects are summed when combined. If the last value of the array is a numeric literal, Druid assumes that the value is an override parameter for nominal entries.
DS_TUPLE_DOUBLES_METRICS_SUM_ESTIMATE
DS_TUPLE_DOUBLES_METRICS_SUM_ESTIMATE(expr)
Computes approximate sums of the values contained within a Tuple sketch which contains an array of double values as the Summary Object.
DS_TUPLE_DOUBLES_NOT
DS_TUPLE_DOUBLES_NOT(expr, ..., [nominalEntries])
Returns a set difference of Tuple sketches which each contain an array of double values as their Summary Objects. The values contained in the Summary Object are preserved as is. If the last value of the array is a numeric literal, Druid assumes that the value is an override parameter for nominal entries.
DS_TUPLE_DOUBLES_UNION
DS_TUPLE_DOUBLES_UNION(expr, ..., [nominalEntries])
Returns a union of Tuple sketches which each contain an array of double values as their Summary Objects. The values contained in the Summary Objects are summed when combined. If the last value of the array is a numeric literal, Druid assumes that the value is an override parameter for nominal entries.
EARLIEST
EARLIEST(expr, [maxBytesPerValue])
Returns the value of a numeric or string expression corresponding to the earliest __time
value.
EARLIEST_BY
EARLIEST_BY(expr, timestampExpr, [maxBytesPerValue])
Returns the value of a numeric or string expression corresponding to the earliest time value from timestampExpr
.
EXP
EXP(<NUMERIC>)
Calculates e raised to the power of the numeric expression.
EXTRACT
EXTRACT(<TIME_UNIT> FROM <TIMESTAMP>)
Extracts the value of some unit of the timestamp, optionally from a certain time zone, and returns the number.
FIRST_VALUE
FIRST_VALUE(expr)
Returns the value evaluated for the expression for the first row within the window.
FLOOR (date and time)
FLOOR(<TIMESTAMP> TO <TIME_UNIT>)
Rounds down a timestamp by a given time unit.
FLOOR (numeric)
FLOOR(<NUMERIC>)
Calculates the largest integer value less than or equal to the numeric expression.
GREATEST
GREATEST([expr1, ...])
Returns the maximum value from the provided arguments.
GROUPING
GROUPING(expr, expr...)
Returns a number for each output row of a groupBy query, indicating whether the specified dimension is included for that row.
HLL_SKETCH_ESTIMATE
HLL_SKETCH_ESTIMATE(expr, [round])
Returns the distinct count estimate from an HLL sketch.
HLL_SKETCH_ESTIMATE_WITH_ERROR_BOUNDS
HLL_SKETCH_ESTIMATE_WITH_ERROR_BOUNDS(expr, [numStdDev])
Returns the distinct count estimate and error bounds from an HLL sketch.
HLL_SKETCH_TO_STRING
HLL_SKETCH_TO_STRING(expr)
Returns a human-readable string representation of an HLL sketch.
HLL_SKETCH_UNION
HLL_SKETCH_UNION([lgK, tgtHllType], expr0, expr1, ...)
Returns a union of HLL sketches.
HUMAN_READABLE_BINARY_BYTE_FORMAT
HUMAN_READABLE_BINARY_BYTE_FORMAT(value[, precision])
Converts an integer byte size into human-readable IEC format.
HUMAN_READABLE_DECIMAL_BYTE_FORMAT
HUMAN_READABLE_DECIMAL_BYTE_FORMAT(value[, precision])
Converts a byte size into human-readable SI format.
HUMAN_READABLE_DECIMAL_FORMAT
HUMAN_READABLE_DECIMAL_FORMAT(value[, precision])
Converts a byte size into human-readable SI format with single-character units.
ICONTAINS_STRING
ICONTAINS_STRING(<expr>, str)
Finds whether a string is in a given expression, case-insensitive.
IPV4_MATCH
IPV4_MATCH(address, subnet)
Returns true if the IPv4 address
belongs to the subnet
literal, else false.
IPV4_PARSE
IPV4_PARSE(address)
Parses address
into an IPv4 address stored as an integer.
IPV4_STRINGIFY
IPV4_STRINGIFY(address)
Converts address
into an IPv4 address in dot-decimal notation.
IPV6_MATCH
IPV6_MATCH(address, subnet)
Returns true if the IPv6 address
belongs to the subnet
literal, else false.
JSON_KEYS
JSON_KEYS(expr, path)
Returns an array of field names from expr
at the specified path
.
JSON_MERGE
JSON_MERGE(expr1, expr2[, expr3 ...])
Merges two or more JSON STRING
or COMPLEX<json>
into one. Preserves the rightmost value when there are key overlaps. Returning always a COMPLEX<json>
type.
JSON_OBJECT
JSON_OBJECT(KEY expr1 VALUE expr2[, KEY expr3 VALUE expr4, ...])
Constructs a new COMPLEX<json>
object. The KEY
expressions must evaluate to string types. The VALUE
expressions can be composed of any input type, including other COMPLEX<json>
values. JSON_OBJECT
can accept colon-separated key-value pairs. The following syntax is equivalent: JSON_OBJECT(expr1:expr2[, expr3:expr4, ...])
.
JSON_PATHS
JSON_PATHS(expr)
Returns an array of all paths which refer to literal values in expr
in JSONPath format.
JSON_QUERY
JSON_QUERY(expr, path)
Extracts a COMPLEX<json>
value from expr
, at the specified path
.
JSON_QUERY_ARRAY
JSON_QUERY_ARRAY(expr, path)
Extracts an ARRAY<COMPLEX<json>>
value from expr
at the specified path
. If value is not an ARRAY
, it gets translated into a single element ARRAY
containing the value at path
. The primary use of this function is to extract arrays of objects to use as inputs to other array functions.
JSON_VALUE
JSON_VALUE(expr, path [RETURNING sqlType])
Extracts a literal value from expr
at the specified path
. If you specify RETURNING
and an SQL type name (such as VARCHAR
, BIGINT
, DOUBLE
, etc) the function plans the query using the suggested type. Otherwise, it attempts to infer the type based on the context. If it can't infer the type, it defaults to VARCHAR
.
LAG
LAG(expr[, offset])
If you do not supply an offset
, returns the value evaluated at the row preceding the current row. Specify an offset number n
to return the value evaluated at n
rows preceding the current one.
LAST_VALUE
LAST_VALUE(expr)
Returns the value evaluated for the expression for the last row within the window.
LATEST
LATEST(expr, [maxBytesPerValue])
Returns the value of a numeric or string expression corresponding to the latest __time
value.
LATEST_BY
LATEST_BY(expr, timestampExpr, [maxBytesPerValue])
Returns the value of a numeric or string expression corresponding to the latest time value from timestampExpr
.
LEAD
LEAD(expr[, offset])
If you do not supply an offset
, returns the value evaluated at the row following the current row. Specify an offset number n
to return the value evaluated at n
rows following the current one; if there is no such row, returns the given default value.
LEAST
LEAST([expr1, ...])
Returns the minimum value from the provided arguments.
LEFT
LEFT(expr, [length])
Returns the leftmost number of characters from an expression.
LENGTH
LENGTH(expr)
Returns the length of the expression in UTF-16 encoding.
LN
LN(expr)
Calculates the natural logarithm of the numeric expression.
LOG10
LOG10(expr)
Calculates the base-10 of the numeric expression.
LOOKUP
LOOKUP(<CHARACTER>, <CHARACTER>[, <CHARACTER>])
Looks up the expression in a registered query-time lookup table.
LOWER
LOWER(expr)
Returns the expression in lowercase.
LPAD
LPAD(<CHARACTER>, <INTEGER>, [<CHARACTER>])
Returns the leftmost number of characters from an expression, optionally padded with the given characters.
LTRIM
LTRIM(<CHARACTER>, [<CHARACTER>])
Trims characters from the leading end of an expression.
MAX
MAX(expr)
Returns the maximum value of a set of values.
MILLIS_TO_TIMESTAMP
MILLIS_TO_TIMESTAMP(millis_expr)
Converts a number of milliseconds since epoch into a timestamp.
MIN
MIN(expr)
Returns the minimum value of a set of values.
MOD
MOD(x, y)
Calculates x modulo y, or the remainder of x divided by y.
MV_APPEND
MV_APPEND(arr1, expr)
Adds the expression to the end of the array.
MV_CONCAT
MV_CONCAT(arr1, arr2)
Concatenates two arrays.
MV_CONTAINS
MV_CONTAINS(arr, expr)
Returns true if the expression is in the array, false otherwise.
MV_FILTER_NONE
MV_FILTER_NONE(expr, arr)
Filters a multi-value expression to include no values contained in the array.
MV_FILTER_ONLY
MV_FILTER_ONLY(expr, arr)
Filters a multi-value expression to include only values contained in the array.
MV_LENGTH
MV_LENGTH(arr)
Returns the length of an array expression.
MV_OFFSET
MV_OFFSET(arr, long)
Returns the array element at the given zero-based index.
MV_OFFSET_OF
MV_OFFSET_OF(arr, expr)
Returns the zero-based index of the first occurrence of a given expression in the array.
MV_ORDINAL
MV_ORDINAL(arr, long)
Returns the array element at the given one-based index.
MV_ORDINAL_OF
MV_ORDINAL_OF(arr, expr)
Returns the one-based index of the first occurrence of a given expression.
MV_OVERLAP
MV_OVERLAP(arr1, arr2)
Returns true if the two arrays have any elements in common, false otherwise.
MV_PREPEND
MV_PREPEND(expr, arr)
Adds the expression to the beginning of the array.
MV_SLICE
MV_SLICE(arr, start, end)
Returns a slice of the array from the zero-based start and end indexes.
MV_TO_ARRAY
MV_TO_ARRAY(str)
Converts a multi-value string from a VARCHAR
to a VARCHAR ARRAY
.
MV_TO_STRING
MV_TO_STRING(arr, str)
Joins all elements of the array together by the given delimiter.
NTILE
NTILE(tiles)
Divides the rows within a window as evenly as possible into the number of tiles, also called buckets, and returns the value of the tile that the row falls into.
NULLIF
NULLIF(value1, value2)
Returns NULL if two values are equal, else returns the first value.
NVL
NVL(e1, e2)
Returns e2
if e1
is null, else returns e1
.
PARSE_JSON
PARSE_JSON(expr)
Parses expr
into a COMPLEX<json>
object. This operator deserializes JSON values when processing them, translating stringified JSON into a nested structure. If the input is not a VARCHAR
or it is invalid JSON, this function will result in an error.
PARSE_LONG
PARSE_LONG(<CHARACTER>, [<INTEGER>])
Converts a string into a BIGINT with the given base or into a DECIMAL data type if the base is not specified.
PERCENT_RANK
PERCENT_RANK()
Returns the relative rank of the row calculated as a percentage according to the formula: RANK() OVER (window) / COUNT(1) OVER (window)
.
POSITION
POSITION(<CHARACTER> IN <CHARACTER> [FROM <INTEGER>])
Returns the one-based index position of a substring within an expression, optionally starting from a given one-based index.
POWER
POWER(expr, power)
Calculates a numerical expression raised to the specified power.
RADIANS
RADIANS(expr)
Converts an angle from degrees to radians.
RANK
RANK()
Returns the rank with gaps for a row within a window. For example, if two rows tie for rank 1, the next rank is 3.
REGEXP_EXTRACT
REGEXP_EXTRACT(<CHARACTER>, <CHARACTER>, [<INTEGER>])
Applies a regular expression to the string expression and returns the _n_th match.
REGEXP_LIKE
REGEXP_LIKE(<CHARACTER>, <CHARACTER>)
Returns true or false signifying whether the regular expression finds a match in the string expression.
REGEXP_REPLACE
REGEXP_REPLACE(<CHARACTER>, <CHARACTER>, <CHARACTER>)
Replaces all occurrences of a regular expression in a string expression with a replacement string. The replacement
string may refer to capture groups using $1
, $2
, etc.
REPEAT
REPEAT(<CHARACTER>, [<INTEGER>])
Repeats the string expression an integer number of times.
REPLACE
REPLACE(expr, pattern, replacement)
Replaces a pattern with another string in the given expression.
REVERSE
REVERSE(expr)
Reverses the given expression.
RIGHT
RIGHT(expr, [length])
Returns the rightmost number of characters from an expression.
ROUND
ROUND(expr[, digits])
Calculates the rounded value for a numerical expression.
ROW_NUMBER
ROW_NUMBER()
Returns the number of the row within the window starting from 1.
RPAD
RPAD(<CHARACTER>, <INTEGER>, [<CHARACTER>])
Returns the rightmost number of characters from an expression, optionally padded with the given characters.
RTRIM
RTRIM(<CHARACTER>, [<CHARACTER>])
Trims characters from the trailing end of an expression.
SAFE_DIVIDE
SAFE_DIVIDE(x, y)
Returns x
divided by y
, guarded on division by 0.
SIN
SIN(expr)
Calculates the trigonometric sine of an angle expressed in radians.
SQRT
SQRT(expr)
Calculates the square root of a numeric expression.
STDDEV
STDDEV(expr)
Alias for STDDEV_SAMP
.
STDDEV_POP
STDDEV_POP(expr)
Calculates the population standard deviation of a set of values.
STDDEV_SAMP
STDDEV_SAMP(expr)
Calculates the sample standard deviation of a set of values.
STRING_AGG
STRING_AGG(expr, separator, [size])
Collects all values of an expression into a single string.
STRING_TO_ARRAY
STRING_TO_ARRAY(str1, str2)
Splits str1
into an array on the delimiter specified by str2
, which is a regular expression.
STRING_FORMAT
STRING_FORMAT(pattern[, args...])
Returns a string formatted in accordance to Java's String.format method.
STRING_TO_MV
STRING_TO_MV(str1, str2)
Splits str1
into an multi-value string on the delimiter specified by str2
, which is a regular expression.
STRLEN
STRLEN(expr)
Alias for LENGTH
.
STRPOS
STRPOS(<CHARACTER>, <CHARACTER>)
Returns the one-based index position of a substring within an expression.
SUBSTR
SUBSTR(<CHARACTER>, <INTEGER>, [<INTEGER>])
Alias for SUBSTRING
.
SUBSTRING
SUBSTRING(<CHARACTER>, <INTEGER>, [<INTEGER>])
Returns a substring of the expression starting at a given one-based index.
SUM
SUM(expr)
Calculates the sum of a set of values.
TAN
TAN(expr)
Calculates the trigonometric tangent of an angle expressed in radians.
TDIGEST_GENERATE_SKETCH
TDIGEST_GENERATE_SKETCH(expr, [compression])
Generates a T-digest sketch from values of the specified expression.
TDIGEST_QUANTILE
TDIGEST_QUANTILE(expr, quantileFraction, [compression])
Returns the quantile for the specified fraction from a T-Digest sketch constructed from values of the expression.
TEXTCAT
TEXTCAT(<CHARACTER>, <CHARACTER>)
Concatenates two string expressions.
THETA_SKETCH_ESTIMATE
THETA_SKETCH_ESTIMATE(expr)
Returns the distinct count estimate from a Theta sketch.
THETA_SKETCH_ESTIMATE_WITH_ERROR_BOUNDS
THETA_SKETCH_ESTIMATE_WITH_ERROR_BOUNDS(expr, errorBoundsStdDev)
Returns the distinct count estimate and error bounds from a Theta sketch.
THETA_SKETCH_INTERSECT
THETA_SKETCH_INTERSECT([size], expr0, expr1, ...)
Returns an intersection of Theta sketches.
THETA_SKETCH_NOT
THETA_SKETCH_NOT([size], expr0, expr1, ...)
Returns a set difference of Theta sketches.
THETA_SKETCH_UNION
THETA_SKETCH_UNION([size], expr0, expr1, ...)
Returns a union of Theta sketches.
TIME_CEIL
TIME_CEIL(<TIMESTAMP>, <period>, [<origin>, [<timezone>]])
Rounds up a timestamp by a given time period, optionally from some reference time or timezone.
TIME_EXTRACT
TIME_EXTRACT(<TIMESTAMP>, [<unit>, [<timezone>]])
Extracts the value of some unit of the timestamp and returns the number.
TIME_FLOOR
TIME_FLOOR(<TIMESTAMP>, <period>, [<origin>, [<timezone>]])
Rounds down a timestamp by a given time period, optionally from some reference time or timezone.
TIME_FORMAT
TIME_FORMAT(<TIMESTAMP>, [<pattern>, [<timezone>]])
Formats a timestamp as a string.
TIME_IN_INTERVAL
TIME_IN_INTERVAL(<TIMESTAMP>, <CHARACTER>)
Returns whether a timestamp is contained within a particular interval, formatted as a string.
TIME_PARSE
TIME_PARSE(<string_expr>, [<pattern>, [<timezone>]])
Parses a string into a timestamp.
TIME_SHIFT
TIME_SHIFT(<TIMESTAMP>, <period>, <step>, [<timezone>])
Shifts a timestamp forwards or backwards by a given number of time units.
TIMESTAMP_TO_MILLIS
TIMESTAMP_TO_MILLIS(<TIMESTAMP>)
Returns the number of milliseconds since epoch for the given timestamp.
TIMESTAMPADD
TIMESTAMPADD(<unit>, <count>, <TIMESTAMP>)
Adds a certain amount of time to a given timestamp.
TIMESTAMPDIFF
TIMESTAMPDIFF(<unit>, <TIMESTAMP>, <TIMESTAMP>)
Takes the difference between two timestamps, returning the results in the given units.
TO_JSON_STRING
TO_JSON_STRING(expr)
Serializes expr
into a JSON string.
TRIM
TRIM([BOTH|LEADING|TRAILING] [<chars> FROM] expr)
Trims the leading or trailing characters of an expression.
TRUNC
TRUNC(expr[, digits])
Alias for TRUNCATE
.
TRUNCATE
TRUNCATE(expr[, digits])
Truncates a numerical expression to a specific number of decimal digits.
TRY_PARSE_JSON
TRY_PARSE_JSON(expr)
Parses expr
into a COMPLEX<json>
object. This operator deserializes JSON values when processing them, translating stringified JSON into a nested structure. If the input is not a VARCHAR
or it is invalid JSON, this function will result in a NULL
value.
UNNEST
UNNEST(source_expression) as table_alias_name(column_alias_name)
Unnests a source expression that includes arrays into a target column with an aliased name.
UPPER
UPPER(expr)
Returns the expression in uppercase.
VAR_POP
VAR_POP(expr)
Calculates the population variance of a set of values.
VAR_SAMP
VAR_SAMP(expr)
Calculates the sample variance of a set of values.
VARIANCE
VARIANCE(expr)
Alias for VAR_SAMP
.