1861 lines
36 KiB
Markdown
1861 lines
36 KiB
Markdown
|
|
Use array functions to create and operate on Arrow arrays or lists in SQL queries.
|
|
|
|
- [array_any_value](#array_any_value)
|
|
- [array_append](#array_append)
|
|
- [array_cat](#array_cat)
|
|
- [array_concat](#array_concat)
|
|
- [array_contains](#array_contains)
|
|
- [array_dims](#array_dims)
|
|
- [array_distance](#array_distance)
|
|
- [array_distinct](#array_distinct)
|
|
- [array_element](#array_element)
|
|
- [array_empty](#array_empty)
|
|
- [array_except](#array_except)
|
|
- [array_extract](#array_extract)
|
|
- [array_has](#array_has)
|
|
- [array_has_all](#array_has_all)
|
|
- [array_has_any](#array_has_any)
|
|
- [array_indexof](#array_indexof)
|
|
- [array_intersect](#array_intersect)
|
|
- [array_join](#array_join)
|
|
- [array_length](#array_length)
|
|
- [array_max](#array_max)
|
|
- [array_min](#array_min)
|
|
- [array_ndims](#array_ndims)
|
|
- [array_pop_back](#array_pop_back)
|
|
- [array_pop_front](#array_pop_front)
|
|
- [array_position](#array_position)
|
|
- [array_positions](#array_positions)
|
|
- [array_prepend](#array_prepend)
|
|
- [array_push_back](#array_push_back)
|
|
- [array_push_front](#array_push_front)
|
|
- [array_remove](#array_remove)
|
|
- [array_remove_all](#array_remove_all)
|
|
- [array_remove_n](#array_remove_n)
|
|
- [array_repeat](#array_repeat)
|
|
- [array_replace](#array_replace)
|
|
- [array_replace_all](#array_replace_all)
|
|
- [array_replace_n](#array_replace_n)
|
|
- [array_resize](#array_resize)
|
|
- [array_reverse](#array_reverse)
|
|
- [array_slice](#array_slice)
|
|
- [array_sort](#array_sort)
|
|
- [array_to_string](#array_to_string)
|
|
- [array_union](#array_union)
|
|
- [arrays_overlap](#arrays_overlap)
|
|
- [cardinality](#cardinality)
|
|
- [empty](#empty)
|
|
- [flatten](#flatten)
|
|
- [generate_series](#generate_series)
|
|
- [list_any_value](#list_any_value)
|
|
- [list_append](#list_append)
|
|
- [list_cat](#list_cat)
|
|
- [list_concat](#list_concat)
|
|
- [list_contains](#list_contains)
|
|
- [list_dims](#list_dims)
|
|
- [list_distance](#list_distance)
|
|
- [list_distinct](#list_distinct)
|
|
- [list_element](#list_element)
|
|
- [list_empty](#list_empty)
|
|
- [list_except](#list_except)
|
|
- [list_extract](#list_extract)
|
|
- [list_has](#list_has)
|
|
- [list_has_all](#list_has_all)
|
|
- [list_has_any](#list_has_any)
|
|
- [list_indexof](#list_indexof)
|
|
- [list_intersect](#list_intersect)
|
|
- [list_join](#list_join)
|
|
- [list_length](#list_length)
|
|
- [list_max](#list_max)
|
|
- [list_ndims](#list_ndims)
|
|
- [list_pop_back](#list_pop_back)
|
|
- [list_pop_front](#list_pop_front)
|
|
- [list_position](#list_position)
|
|
- [list_positions](#list_positions)
|
|
- [list_prepend](#list_prepend)
|
|
- [list_push_back](#list_push_back)
|
|
- [list_push_front](#list_push_front)
|
|
- [list_remove](#list_remove)
|
|
- [list_remove_all](#list_remove_all)
|
|
- [list_remove_n](#list_remove_n)
|
|
- [list_repeat](#list_repeat)
|
|
- [list_replace](#list_replace)
|
|
- [list_replace_all](#list_replace_all)
|
|
- [list_replace_n](#list_replace_n)
|
|
- [list_resize](#list_resize)
|
|
- [list_reverse](#list_reverse)
|
|
- [list_slice](#list_slice)
|
|
- [list_sort](#list_sort)
|
|
- [list_to_string](#list_to_string)
|
|
- [list_union](#list_union)
|
|
- [make_array](#make_array)
|
|
- [make_list](#make_list)
|
|
- [range](#range)
|
|
- [string_to_array](#string_to_array)
|
|
- [string_to_list](#string_to_list)
|
|
|
|
## array_any_value
|
|
|
|
Returns the first non-null element in the array.
|
|
|
|
```sql
|
|
array_any_value(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_any_value`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_any_value` example" %}}
|
|
|
|
```sql
|
|
SELECT array_any_value([NULL, 1, 2, 3]) AS array_any_value
|
|
```
|
|
|
|
| array_any_value |
|
|
| :-------------- |
|
|
| 1 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_append
|
|
|
|
Appends an element to the end of an array.
|
|
|
|
```sql
|
|
array_append(array, element)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **element**: Element to append to the array.
|
|
|
|
#### Aliases
|
|
|
|
- `list_append`
|
|
- `array_push_back`
|
|
- `list_push_back`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_append` example" %}}
|
|
|
|
```sql
|
|
SELECT array_append([1, 2, 3], 4) AS array_append
|
|
```
|
|
|
|
| array_append |
|
|
| :----------- |
|
|
| [1, 2, 3, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_cat
|
|
|
|
_Alias of [array_concat](#array_concat)._
|
|
|
|
## array_concat
|
|
|
|
Concatenates multiple arrays into a single array.
|
|
|
|
```sql
|
|
array_concat(array[, ..., array_n])
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **array_n**: Subsequent array column or literal array to concatenate.
|
|
|
|
#### Aliases
|
|
|
|
- `array_cat`
|
|
- `list_concat`
|
|
- `list_cat`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_concat` example" %}}
|
|
|
|
```sql
|
|
SELECT array_concat([1, 2], [3, 4], [5, 6]) AS array_concat
|
|
```
|
|
| array_concat |
|
|
| :----------------- |
|
|
| [1, 2, 3, 4, 5, 6] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_contains
|
|
|
|
_Alias of [array_has](#array_has)._
|
|
|
|
## array_dims
|
|
|
|
Returns an array of the array's dimensions.
|
|
|
|
```sql
|
|
array_dims(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_dims`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_dims` example" %}}
|
|
|
|
```sql
|
|
SELECT array_dims([[1, 2, 3], [4, 5, 6]]) AS array_dims
|
|
```
|
|
|
|
| array_dims(List([1,2,3,4,5,6])) |
|
|
| :------------------------------ |
|
|
| [2, 3] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_distance
|
|
|
|
Returns the Euclidean distance between two input arrays of equal length.
|
|
|
|
```sql
|
|
array_distance(array1, array2)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array1**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **array2**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_distance`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_distance` example" %}}
|
|
|
|
```sql
|
|
SELECT array_distance([1, 2], [1, 4]) AS array_distance
|
|
```
|
|
|
|
| array_distance |
|
|
| -------------: |
|
|
| 2.0 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_distinct
|
|
|
|
Returns distinct values from the array after removing duplicates.
|
|
|
|
```sql
|
|
array_distinct(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_distinct`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_distinct` example" %}}
|
|
|
|
```sql
|
|
SELECT array_distinct([1, 3, 2, 3, 1, 2, 4]) AS array_distinct
|
|
```
|
|
|
|
| array_distinct(List([1,2,3,4])) |
|
|
| :------------------------------ |
|
|
| [1, 2, 3, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_element
|
|
|
|
Extracts the element with the index n from the array.
|
|
|
|
```sql
|
|
array_element(array, index)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **index**: Index to use to extract the element from the array.
|
|
|
|
#### Aliases
|
|
|
|
- `array_extract`
|
|
- `list_element`
|
|
- `list_extract`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_element` example" %}}
|
|
|
|
```sql
|
|
SELECT array_element([1, 2, 3, 4], 3) AS array_element
|
|
```
|
|
|
|
| array_element |
|
|
| ------------: |
|
|
| 3 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_empty
|
|
|
|
_Alias of [empty](#empty)._
|
|
|
|
## array_except
|
|
|
|
Returns an array containing elements from the first array that are not present in the second array.
|
|
|
|
```sql
|
|
array_except(array1, array2)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array1**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **array2**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_except`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_except` example" %}}
|
|
|
|
```sql
|
|
SELECT array_except([1, 2, 3, 4], [5, 6, 3, 4]) AS array_except
|
|
```
|
|
|
|
| array_except |
|
|
| :----------- |
|
|
| [1, 2] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_extract
|
|
|
|
_Alias of [array_element](#array_element)._
|
|
|
|
## array_has
|
|
|
|
Returns `true` if the array contains the element.
|
|
|
|
```sql
|
|
array_has(array, element)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **element**: Scalar or Array expression. Can be a constant, column, or
|
|
function, and any combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_has`
|
|
- `array_contains`
|
|
- `list_contains`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_has` example" %}}
|
|
|
|
```sql
|
|
SELECT array_has([1, 2, 3], 2) AS array_has
|
|
```
|
|
|
|
| array_has |
|
|
| :-------- |
|
|
| true |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_has_all
|
|
|
|
Returns `true` if all elements of sub-array exist in array.
|
|
|
|
```sql
|
|
array_has_all(array, sub-array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **sub-array**: Array expression. Can be a constant, column, or function, and
|
|
any combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_has_all`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_has_all` example" %}}
|
|
|
|
```sql
|
|
SELECT array_has_all([1, 2, 3, 4], [2, 3]) AS array_has_all
|
|
```
|
|
|
|
| array_has_all |
|
|
| :------------ |
|
|
| true |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_has_any
|
|
|
|
Returns `true` if at least one element appears in both arrays.
|
|
|
|
```sql
|
|
array_has_any(array, sub-array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **sub-array**: Array expression. Can be a constant, column, or function, and
|
|
any combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_has_any`
|
|
- `arrays_overlap`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_has_any` example" %}}
|
|
|
|
```sql
|
|
SELECT array_has_any([1, 2, 3], [3, 4]) AS array_has_any
|
|
```
|
|
|
|
| array_has_any |
|
|
| :------------ |
|
|
| true |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_indexof
|
|
|
|
_Alias of [array_position](#array_position)._
|
|
|
|
## array_intersect
|
|
|
|
Returns an array containing only the elements that appear in both **array1** and **array2**.
|
|
|
|
```sql
|
|
array_intersect(array1, array2)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array1**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **array2**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_intersect`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_intersect` example with intersecting arrays" %}}
|
|
|
|
```sql
|
|
SELECT array_intersect([1, 2, 3, 4], [5, 6, 3, 4]) AS array_intersect
|
|
```
|
|
|
|
| array_intersect |
|
|
| :-------------- |
|
|
| [3, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `array_intersect` example with non-intersecting arrays" %}}
|
|
|
|
```sql
|
|
SELECT array_intersect([1, 2, 3, 4], [5, 6, 7, 8]) AS array_intersect
|
|
```
|
|
|
|
| array_intersect |
|
|
| :-------------- |
|
|
| [] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_join
|
|
|
|
_Alias of [array_to_string](#array_to_string)._
|
|
|
|
## array_length
|
|
|
|
Returns the length of the array dimension.
|
|
|
|
```sql
|
|
array_length(array, dimension)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **dimension**: Array dimension. Default is `1`.
|
|
|
|
#### Aliases
|
|
|
|
- `list_length`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_length` example with single-dimension array" %}}
|
|
|
|
```sql
|
|
SELECT array_length([1, 2, 3, 4, 5]) AS array_length
|
|
```
|
|
|
|
| array_length |
|
|
| -----------: |
|
|
| 5 |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `array_length` example with multi-dimension array" %}}
|
|
|
|
```sql
|
|
WITH vars AS (
|
|
SELECT [
|
|
[1, 2, 3, 4, 5],
|
|
[5, 6, 7, 8, 9]
|
|
] AS example_array
|
|
)
|
|
|
|
SELECT
|
|
array_length(example_array, 1) AS 'dim1_length',
|
|
array_length(example_array, 2) AS 'dim2_length'
|
|
FROM vars
|
|
```
|
|
|
|
| dim1_length | dim2_length |
|
|
| ----------: | ----------: |
|
|
| 2 | 5 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_max
|
|
|
|
Returns the maximum value in the array.
|
|
|
|
```sql
|
|
array_max(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_max`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_max` example" %}}
|
|
|
|
```sql
|
|
SELECT array_max([3,1,4,2]) AS array_max
|
|
```
|
|
|
|
| array_max |
|
|
| --------: |
|
|
| 4 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_min
|
|
|
|
Returns the minimum value in the array.
|
|
|
|
```sql
|
|
array_min(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_min` example" %}}
|
|
|
|
```sql
|
|
SELECT array_min([3,1,4,2]) AS array_min
|
|
```
|
|
|
|
| array_min |
|
|
| --------: |
|
|
| 1 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_ndims
|
|
|
|
Returns the number of dimensions of the array.
|
|
|
|
```sql
|
|
array_ndims(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_ndims`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_ndims` example" %}}
|
|
|
|
```sql
|
|
SELECT array_ndims([[1, 2, 3], [4, 5, 6]]) AS array_ndims
|
|
```
|
|
|
|
| array_ndims |
|
|
| ----------: |
|
|
| 2 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_pop_back
|
|
|
|
Returns the array without the last element.
|
|
|
|
```sql
|
|
array_pop_back(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_pop_back`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_pop_back` example" %}}
|
|
|
|
```sql
|
|
SELECT array_pop_back([1, 2, 3]) AS array_pop_back
|
|
```
|
|
|
|
| array_pop_back |
|
|
| :------------- |
|
|
| [1, 2] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_pop_front
|
|
|
|
Returns the array without the first element.
|
|
|
|
```sql
|
|
array_pop_front(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_pop_front`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_pop_front` example" %}}
|
|
|
|
```sql
|
|
SELECT array_pop_front([1, 2, 3]) AS array_pop_front
|
|
```
|
|
|
|
| array_pop_front |
|
|
| :-------------- |
|
|
| [2, 3] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_position
|
|
|
|
Returns the position of the first occurrence of the specified element in the
|
|
array, or _NULL_ if not found.
|
|
|
|
```sql
|
|
array_position(array, element, index)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **element**: Element to search for position in the array.
|
|
- **index**: Index at which to start searching (1-indexed). Default is `1`.
|
|
|
|
#### Aliases
|
|
|
|
- `list_position`
|
|
- `array_indexof`
|
|
- `list_indexof`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_position` example" %}}
|
|
|
|
```sql
|
|
SELECT array_position([1, 2, 2, 3, 1, 4], 2) AS array_position
|
|
```
|
|
|
|
| array_position |
|
|
| -------------: |
|
|
| 2 |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `array_position` example with index offset" %}}
|
|
|
|
```sql
|
|
SELECT array_position([1, 2, 2, 3, 1, 4], 2, 3) AS array_position
|
|
```
|
|
|
|
| array_position |
|
|
| -------------: |
|
|
| 3 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_positions
|
|
|
|
Searches for an element in the array and returns the position or index of each
|
|
occurrence.
|
|
|
|
```sql
|
|
array_positions(array, element)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **element**: Element to search for position in the array.
|
|
|
|
#### Aliases
|
|
|
|
- `list_positions`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_positions` example" %}}
|
|
|
|
```sql
|
|
SELECT array_positions(['John', 'Jane', 'James', 'John'], 'John') AS array_positions
|
|
```
|
|
|
|
| array_positions |
|
|
| :-------------- |
|
|
| [1, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_prepend
|
|
|
|
Prepends an element to the beginning of an array.
|
|
|
|
```sql
|
|
array_prepend(element, array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **element**: Element to prepend to the array.
|
|
|
|
#### Aliases
|
|
|
|
- `list_prepend`
|
|
- `array_push_front`
|
|
- `list_push_front`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_prepend` example" %}}
|
|
|
|
```sql
|
|
SELECT array_prepend(1, [2, 3, 4]) AS array_prepend
|
|
```
|
|
|
|
| array_prepend |
|
|
| :------------ |
|
|
| [1, 2, 3, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_push_back
|
|
|
|
_Alias of [array_append](#array_append)._
|
|
|
|
## array_push_front
|
|
|
|
_Alias of [array_prepend](#array_prepend)._
|
|
|
|
## array_remove
|
|
|
|
Removes the first element from the array equal to the given value.
|
|
|
|
```sql
|
|
array_remove(array, element)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **element**: Element to remove from the array.
|
|
|
|
#### Aliases
|
|
|
|
- `list_remove`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_remove` example" %}}
|
|
|
|
```sql
|
|
SELECT array_remove([1, 2, 2, 3, 2, 1, 4], 2) AS array_remove
|
|
```
|
|
|
|
| array_remove |
|
|
| :----------------- |
|
|
| [1, 2, 3, 2, 1, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_remove_all
|
|
|
|
Removes all elements from the array equal to the specified value.
|
|
|
|
```sql
|
|
array_remove_all(array, element)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **element**: Element to be removed from the array.
|
|
|
|
#### Aliases
|
|
|
|
- `list_remove_all`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_remove_all` example" %}}
|
|
|
|
```sql
|
|
SELECT array_remove_all([1, 2, 2, 3, 2, 1, 4], 2) AS array_remove_all
|
|
```
|
|
|
|
| array_remove_all |
|
|
| :--------------- |
|
|
| [1, 3, 1, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_remove_n
|
|
|
|
Removes the first `max` elements from the array equal to the specified value.
|
|
|
|
```sql
|
|
array_remove_n(array, element, max)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **element**: Element to remove from the array.
|
|
- **max**: Maximum number of occurrences to remove.
|
|
|
|
#### Aliases
|
|
|
|
- `list_remove_n`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_remove_n` example" %}}
|
|
|
|
```sql
|
|
SELECT array_remove_n([1, 2, 2, 3, 2, 1, 4], 2, 2) AS array_remove_n
|
|
```
|
|
|
|
| array_remove_n |
|
|
| :-------------- |
|
|
| [1, 3, 2, 1, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_repeat
|
|
|
|
Returns an array containing element `count` times.
|
|
|
|
```sql
|
|
array_repeat(element, count)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **element**: Element expression. Can be a constant, column, or function, and
|
|
any combination of array operators.
|
|
- **count**: Number of times to repeat the element.
|
|
|
|
#### Aliases
|
|
|
|
- `list_repeat`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_repeat` example with numeric values" %}}
|
|
|
|
```sql
|
|
SELECT array_repeat(1, 3) AS array_repeat
|
|
```
|
|
|
|
| array_repeat |
|
|
| :----------- |
|
|
| [1, 1, 1] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `array_repeat` example with string values" %}}
|
|
|
|
```sql
|
|
SELECT array_repeat('John', 3) AS array_repeat
|
|
```
|
|
|
|
| array_repeat |
|
|
| :----------- |
|
|
| [John, John, John] |
|
|
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `array_repeat` example with array values" %}}
|
|
|
|
```sql
|
|
SELECT array_repeat([1, 2], 2) AS array_repeat
|
|
```
|
|
|
|
| array_repeat |
|
|
| :--------------- |
|
|
| [[1, 2], [1, 2]] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_replace
|
|
|
|
Replaces the first occurrence of the specified element with another specified element.
|
|
|
|
```sql
|
|
array_replace(array, from, to)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **from**: Element to replace.
|
|
- **to**: Replacement element.
|
|
|
|
#### Aliases
|
|
|
|
- `list_replace`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_replace` example" %}}
|
|
|
|
```sql
|
|
SELECT array_replace(['John', 'Jane', 'James', 'John'], 'John', 'Joe') AS array_replace
|
|
```
|
|
|
|
| array_replace |
|
|
| :----------------------- |
|
|
| [Joe, Jane, James, John] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_replace_all
|
|
|
|
Replaces all occurrences of the specified element with another specified element.
|
|
|
|
```sql
|
|
array_replace_all(array, from, to)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **from**: Element to replace.
|
|
- **to**: Replacement element.
|
|
|
|
#### Aliases
|
|
|
|
- `list_replace_all`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_replace_all` example" %}}
|
|
|
|
```sql
|
|
SELECT array_replace_all(['John', 'Jane', 'James', 'John'], 'John', 'Joe') AS array_replace_all
|
|
```
|
|
|
|
| array_replace_all |
|
|
| :---------------------- |
|
|
| [Joe, Jane, James, Joe] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_replace_n
|
|
|
|
Replaces the first `max` occurrences of the specified element with another
|
|
specified element.
|
|
|
|
```sql
|
|
array_replace_n(array, from, to, max)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **from**: Element to replace.
|
|
- **to**: Replacement element.
|
|
- **max**: Maximum number of occurrences to replace.
|
|
|
|
#### Aliases
|
|
|
|
- `list_replace_n`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_replace_n` example" %}}
|
|
|
|
```sql
|
|
SELECT array_replace_n(['John', 'Jane', 'James', 'John', 'John'], 'John', 'Joe', 2) AS array_replace_n
|
|
```
|
|
|
|
| array_replace_n |
|
|
| :---------------------------- |
|
|
| [Joe, Jane, James, Joe, John] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_resize
|
|
|
|
Resizes the list to contain size elements. Initializes new elements with value
|
|
Resizes the array to the specified size. If expanding, fills new elements with the
|
|
specified value (or _NULL_ if not provided). If shrinking, truncates excess elements.
|
|
|
|
```sql
|
|
array_resize(array, size, value)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **size**: New size of the array.
|
|
- **value**: Value to use for new elements. Default is _NULL_.
|
|
|
|
#### Aliases
|
|
|
|
- `list_resize`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_resize` example" %}}
|
|
|
|
```sql
|
|
SELECT array_resize([1, 2, 3], 5, 0) AS array_resize
|
|
```
|
|
|
|
| array_resize(List([1,2,3],5,0)) |
|
|
| :------------------------------ |
|
|
| [1, 2, 3, 0, 0] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_reverse
|
|
|
|
Returns the array with the order of the elements reversed.
|
|
|
|
```sql
|
|
array_reverse(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_reverse`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_reverse` example" %}}
|
|
|
|
```sql
|
|
SELECT array_reverse([1, 2, 3, 4]) AS array_reverse
|
|
```
|
|
|
|
| array_reverse |
|
|
| :------------ |
|
|
| [4, 3, 2, 1] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_slice
|
|
|
|
Returns a slice of the array based on 1-indexed start and end positions.
|
|
|
|
```sql
|
|
array_slice(array, begin, end)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **begin**: Index of the first element. If negative, it counts backward from
|
|
the end of the array.
|
|
- **end**: Index of the last element. If negative, it counts backward from the
|
|
end of the array.
|
|
- **stride**: Stride of the array slice. The default is `1`.
|
|
|
|
#### Aliases
|
|
|
|
- `list_slice`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_slice` example" %}}
|
|
|
|
```sql
|
|
SELECT array_slice([1, 2, 3, 4, 5, 6, 7, 8], 3, 6) AS array_slice
|
|
```
|
|
|
|
| array_slice |
|
|
| :----------- |
|
|
| [3, 4, 5, 6] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_sort
|
|
|
|
Sorts elements in an array.
|
|
If elements are numeric, it sorts elements in numerical order.
|
|
If elements are strings, it sorts elements in lexicographical order.
|
|
|
|
```sql
|
|
array_sort(array, sort_order, sort_nulls)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **sort_order**: Sort order (`'ASC'` _(default)_ or `'DESC'`).
|
|
- **sort_nulls**: Sort nulls first or last (`'NULLS FIRST'` _(default)_ or `'NULLS LAST'`).
|
|
|
|
#### Aliases
|
|
|
|
- `list_sort`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_sort` example with numeric elements" %}}
|
|
|
|
```sql
|
|
SELECT array_sort([3, 1, 2]) AS array_sort
|
|
```
|
|
|
|
| array_sort |
|
|
| :--------- |
|
|
| [1, 2, 3] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `array_sort` example with string elements" %}}
|
|
|
|
```sql
|
|
SELECT array_sort(['banana', 'apple', 'cherry'], 'DESC') AS array_sort
|
|
```
|
|
|
|
| array_sort |
|
|
| :---------------------- |
|
|
| [cherry, banana, apple] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `array_sort` example with _NULL_ elements" %}}
|
|
|
|
```sql
|
|
SELECT
|
|
array_sort(
|
|
['banana', 'apple', NULL, 'cherry', NULL],
|
|
'ASC',
|
|
'NULLS LAST'
|
|
) AS array_sort
|
|
```
|
|
|
|
| array_sort |
|
|
| :-------------------------- |
|
|
| [apple, banana, cherry, , ] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## array_to_string
|
|
|
|
Converts an array to a string by joining all elements with the specified delimiter.
|
|
|
|
```sql
|
|
array_to_string(array, delimiter[, null_string])
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **delimiter**: Array element separator.
|
|
- **null_string**: Optional. String to replace _NULL_ values in the array.
|
|
If not provided, _NULL_ elements are ignored.
|
|
|
|
#### Aliases
|
|
|
|
- `list_to_string`
|
|
- `array_join`
|
|
- `list_join`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_to_string` example" %}}
|
|
|
|
```sql
|
|
SELECT array_to_string([1,2,3,4,5,6,7,8], ',') AS array_to_string
|
|
```
|
|
|
|
| array_to_string |
|
|
| :-------------- |
|
|
| 1,2,3,4,5,6,7,8 |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `array_to_string` example with _NULL_ replacements" %}}
|
|
|
|
```sql
|
|
SELECT array_to_string([[1,2,3,4,5,NULL,7,8,NULL]], '-', '?') AS array_to_string
|
|
```
|
|
|
|
| array_to_string |
|
|
| :---------------- |
|
|
| 1-2-3-4-5-?-7-8-? |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
|
|
## array_union
|
|
|
|
Returns an array of elements that are present in both arrays (all elements from
|
|
Returns an array containing all unique elements from both input arrays, with
|
|
duplicates removed.
|
|
|
|
```sql
|
|
array_union(array1, array2)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array1**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
- **array2**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `list_union`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `array_union` example" %}}
|
|
|
|
```sql
|
|
SELECT array_union([1, 2, 3, 4], [5, 6, 3, 4]) AS array_union
|
|
```
|
|
|
|
| array_union |
|
|
| :----------------- |
|
|
| [1, 2, 3, 4, 5, 6] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## arrays_overlap
|
|
|
|
_Alias of [array_has_any](#array_has_any)._
|
|
|
|
## cardinality
|
|
|
|
Returns the total number of elements in the array.
|
|
|
|
```sql
|
|
cardinality(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `cardinality` example" %}}
|
|
|
|
```sql
|
|
SELECT cardinality([[1, 2, 3, 4], [5, 6, 7, 8]]) AS cardinality
|
|
```
|
|
|
|
| cardinality |
|
|
| ----------: |
|
|
| 8 |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## empty
|
|
|
|
Returns `true` for an empty array or `false` for a non-empty array.
|
|
|
|
```sql
|
|
empty(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
#### Aliases
|
|
|
|
- `array_empty`
|
|
- `list_empty`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `empty` example" %}}
|
|
|
|
```sql
|
|
SELECT empty(['apple']) AS empty
|
|
```
|
|
|
|
| empty |
|
|
| :---- |
|
|
| false |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## flatten
|
|
|
|
Flattens nested arrays into a single-level array.
|
|
|
|
- Recursively flattens arrays at any depth of nesting
|
|
- Returns unchanged if the array is already flat
|
|
|
|
The result contains all elements from all nested arrays in a single flat array.
|
|
|
|
```sql
|
|
flatten(array)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **array**: Array expression. Can be a constant, column, or function, and any
|
|
combination of array operators.
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `flatten` example" %}}
|
|
|
|
```sql
|
|
SELECT flatten([[1, 2], [3, 4]]) AS flattened
|
|
```
|
|
|
|
| flattened |
|
|
| :----------- |
|
|
| [1, 2, 3, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## generate_series
|
|
|
|
Returns an array with values between the specified **start** and **stop** values
|
|
generated at the specified **step**.
|
|
|
|
The range `start..stop` contains all values greater than or equal to **start**
|
|
and less than or equal to **stop** (`start <= x <= stop`).
|
|
If **start** is greater than or equal to **stop** (`start >= stop`), the
|
|
function returns an empty array.
|
|
|
|
_`generate_series` is similar to [range](#range), but includes the upper bound
|
|
(**stop**) in the output array._
|
|
|
|
```sql
|
|
generate_series(start, stop, step)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **start**: Start of the series. Supports integers, timestamps, dates, or
|
|
string types that can be coerced to `Date32`.
|
|
- **stop**: Upper bound of the series. Supports integers, timestamps,
|
|
dates, or string types that can be coerced to `Date32`. The type must be the
|
|
same as **start**.
|
|
- **step**: Increase by step (cannot be `0`). Steps less than a day are
|
|
only supported for ranges with the `TIMESTAMP` type.
|
|
|
|
##### Related functions
|
|
|
|
[range](#range)
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `generate_series` example" %}}
|
|
|
|
```sql
|
|
SELECT generate_series(1,5) AS generate_series
|
|
```
|
|
|
|
| generate_series |
|
|
| :-------------- |
|
|
| [1, 2, 3, 4, 5] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `range` example with dates" %}}
|
|
|
|
```sql
|
|
SELECT
|
|
generate_series(
|
|
DATE '2025-03-01',
|
|
DATE '2025-08-01',
|
|
INTERVAL '1 month'
|
|
) AS generate_series
|
|
```
|
|
|
|
| generate_series |
|
|
| :----------------------------------------------------------------------- |
|
|
| [2025-03-01, 2025-04-01, 2025-05-01, 2025-06-01, 2025-07-01, 2025-08-01] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `generate_series` example using timestamps" %}}
|
|
|
|
```sql
|
|
SELECT
|
|
generate_series(
|
|
'2025-01-01T00:00:00Z'::timestamp,
|
|
'2025-01-01T06:00:00Z'::timestamp,
|
|
INTERVAL '2 hours'
|
|
) AS generate_series
|
|
```
|
|
|
|
| generate_series |
|
|
| :----------------------------------------------------------------------------------- |
|
|
| [2025-01-01T00:00:00, 2025-01-01T02:00:00, 2025-01-01T04:00:00, 2025-01-01T06:00:00] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
|
|
## list_any_value
|
|
|
|
_Alias of [array_any_value](#array_any_value)._
|
|
|
|
## list_append
|
|
|
|
_Alias of [array_append](#array_append)._
|
|
|
|
## list_cat
|
|
|
|
_Alias of [array_concat](#array_concat)._
|
|
|
|
## list_concat
|
|
|
|
_Alias of [array_concat](#array_concat)._
|
|
|
|
## list_contains
|
|
|
|
_Alias of [array_has](#array_has)._
|
|
|
|
## list_dims
|
|
|
|
_Alias of [array_dims](#array_dims)._
|
|
|
|
## list_distance
|
|
|
|
_Alias of [array_distance](#array_distance)._
|
|
|
|
## list_distinct
|
|
|
|
_Alias of [array_distinct](#array_distinct)._
|
|
|
|
## list_element
|
|
|
|
_Alias of [array_element](#array_element)._
|
|
|
|
## list_empty
|
|
|
|
_Alias of [empty](#empty)._
|
|
|
|
## list_except
|
|
|
|
_Alias of [array_except](#array_except)._
|
|
|
|
## list_extract
|
|
|
|
_Alias of [array_element](#array_element)._
|
|
|
|
## list_has
|
|
|
|
_Alias of [array_has](#array_has)._
|
|
|
|
## list_has_all
|
|
|
|
_Alias of [array_has_all](#array_has_all)._
|
|
|
|
## list_has_any
|
|
|
|
_Alias of [array_has_any](#array_has_any)._
|
|
|
|
## list_indexof
|
|
|
|
_Alias of [array_position](#array_position)._
|
|
|
|
## list_intersect
|
|
|
|
_Alias of [array_intersect](#array_intersect)._
|
|
|
|
## list_join
|
|
|
|
_Alias of [array_to_string](#array_to_string)._
|
|
|
|
## list_length
|
|
|
|
_Alias of [array_length](#array_length)._
|
|
|
|
## list_max
|
|
|
|
_Alias of [array_max](#array_max)._
|
|
|
|
## list_ndims
|
|
|
|
_Alias of [array_ndims](#array_ndims)._
|
|
|
|
## list_pop_back
|
|
|
|
_Alias of [array_pop_back](#array_pop_back)._
|
|
|
|
## list_pop_front
|
|
|
|
_Alias of [array_pop_front](#array_pop_front)._
|
|
|
|
## list_position
|
|
|
|
_Alias of [array_position](#array_position)._
|
|
|
|
## list_positions
|
|
|
|
_Alias of [array_positions](#array_positions)._
|
|
|
|
## list_prepend
|
|
|
|
_Alias of [array_prepend](#array_prepend)._
|
|
|
|
## list_push_back
|
|
|
|
_Alias of [array_append](#array_append)._
|
|
|
|
## list_push_front
|
|
|
|
_Alias of [array_prepend](#array_prepend)._
|
|
|
|
## list_remove
|
|
|
|
_Alias of [array_remove](#array_remove)._
|
|
|
|
## list_remove_all
|
|
|
|
_Alias of [array_remove_all](#array_remove_all)._
|
|
|
|
## list_remove_n
|
|
|
|
_Alias of [array_remove_n](#array_remove_n)._
|
|
|
|
## list_repeat
|
|
|
|
_Alias of [array_repeat](#array_repeat)._
|
|
|
|
## list_replace
|
|
|
|
_Alias of [array_replace](#array_replace)._
|
|
|
|
## list_replace_all
|
|
|
|
_Alias of [array_replace_all](#array_replace_all)._
|
|
|
|
## list_replace_n
|
|
|
|
_Alias of [array_replace_n](#array_replace_n)._
|
|
|
|
## list_resize
|
|
|
|
_Alias of [array_resize](#array_resize)._
|
|
|
|
## list_reverse
|
|
|
|
_Alias of [array_reverse](#array_reverse)._
|
|
|
|
## list_slice
|
|
|
|
_Alias of [array_slice](#array_slice)._
|
|
|
|
## list_sort
|
|
|
|
_Alias of [array_sort](#array_sort)._
|
|
|
|
## list_to_string
|
|
|
|
_Alias of [array_to_string](#array_to_string)._
|
|
|
|
## list_union
|
|
|
|
_Alias of [array_union](#array_union)._
|
|
|
|
## make_array
|
|
|
|
Returns an array using the specified input expressions.
|
|
|
|
```sql
|
|
make_array(expression1[, ..., expression_n])
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **expression_n**: Expression to include in the output array.
|
|
Can be a constant, column, or function, and any combination of arithmetic or
|
|
string operators.
|
|
|
|
#### Aliases
|
|
|
|
- `make_list`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `make_array` example" %}}
|
|
|
|
```sql
|
|
SELECT make_array(1, 2, 3, 4, 5) AS make_array
|
|
```
|
|
|
|
| make_array |
|
|
| :-------------- |
|
|
| [1, 2, 3, 4, 5] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## make_list
|
|
|
|
_Alias of [make_array](#make_array)._
|
|
|
|
## range
|
|
|
|
Returns an array with values between the specified **start** and **stop** values
|
|
generated at the specified **step**.
|
|
|
|
The range `start..stop` contains all values greater than or equal to **start**
|
|
and less than **stop** (`start <= x < stop`).
|
|
If **start** is greater than or equal to **stop** (`start >= stop`), the
|
|
function returns an empty array.
|
|
|
|
_`range` is similar to [generate_series](#generate_series), but does not include
|
|
the upper bound (**stop**) in the output array._
|
|
|
|
```sql
|
|
range(start, stop, step)
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **start**: Start of the series. Supports integers, timestamps, dates, or
|
|
string types that can be coerced to `Date32`.
|
|
- **stop**: Upper bound of the series. Supports integers, timestamps,
|
|
dates, or string types that can be coerced to `Date32`. The type must be the
|
|
same as **start**.
|
|
- **step**: Increase by step (cannot be `0`). Steps less than a day are
|
|
only supported for ranges with the `TIMESTAMP` type.
|
|
|
|
##### Related functions
|
|
|
|
[generate_series](#generate_series)
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `range` example" %}}
|
|
|
|
```sql
|
|
SELECT range(1, 5, 1) AS range
|
|
```
|
|
| range |
|
|
|:-------------|
|
|
| [1, 2, 3, 4] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `range` example with dates" %}}
|
|
|
|
```sql
|
|
SELECT
|
|
range(
|
|
DATE '2025-03-01',
|
|
DATE '2025-08-01',
|
|
INTERVAL '1 month'
|
|
) AS range
|
|
```
|
|
|
|
| range |
|
|
| :----------------------------------------------------------- |
|
|
| [2025-03-01, 2025-04-01, 2025-05-01, 2025-06-01, 2025-07-01] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View range example with timestamps" %}}
|
|
|
|
```sql
|
|
SELECT
|
|
range(
|
|
'2025-01-01T00:00:00Z'::timestamp,
|
|
'2025-01-01T06:00:00Z'::timestamp,
|
|
INTERVAL '2 hours'
|
|
) AS range
|
|
```
|
|
|
|
| range |
|
|
| :-------------------------------------------------------------- |
|
|
| [2025-01-01T00:00:00, 2025-01-01T02:00:00, 2025-01-01T04:00:00] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## string_to_array
|
|
|
|
Splits a string into an array of substrings based on a delimiter. Any substrings
|
|
matching the optional `null_str` argument are replaced with `NULL`.
|
|
|
|
```sql
|
|
string_to_array(str, delimiter[, null_str])
|
|
```
|
|
|
|
### Arguments
|
|
|
|
- **str**: String expression to split.
|
|
- **delimiter**: Delimiter string to split on.
|
|
- **null_str**: _(Optional)_ Substring values to replace with `NULL`.
|
|
|
|
#### Aliases
|
|
|
|
- `string_to_list`
|
|
|
|
{{< expand-wrapper >}}
|
|
{{% expand "View `string_to_array` example with comma-delimited list" %}}
|
|
|
|
```sql
|
|
SELECT string_to_array('abc, def, ghi', ', ') AS string_to_array
|
|
```
|
|
|
|
| string_to_array |
|
|
| :-------------- |
|
|
| [abc, def, ghi] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `string_to_array` example with a non-standard delimiter" %}}
|
|
|
|
```sql
|
|
SELECT string_to_array('abc##def', '##') AS string_to_array
|
|
```
|
|
|
|
| string_to_array |
|
|
| :-------------- |
|
|
| ['abc', 'def'] |
|
|
|
|
{{% /expand %}}
|
|
{{% expand "View `string_to_array` example with _NULL_ replacements" %}}
|
|
|
|
```sql
|
|
SELECT string_to_array('abc def', ' ', 'def') AS string_to_array
|
|
```
|
|
|
|
| string_to_array |
|
|
| :-------------- |
|
|
| ['abc', NULL] |
|
|
|
|
{{% /expand %}}
|
|
{{< /expand-wrapper >}}
|
|
|
|
## string_to_list
|
|
|
|
_Alias of [string_to_array](#string_to_array)._
|