# Array functions

Array functions operate on multiple values stored in an array to process, transform, or analyze the data and return a result.

The following functions are available in Qlik Open Lakehouse:

| Function | Description |
| --- | --- |
| [ARRAY_DISTINCT](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/array_distinct.htm) | Return all the distinct elements in the array. |
| [ARRAY_JOIN](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/array_join.htm) | This function concatenates the elements of the given array to a string using the separator. |
| [ARRAY_MAX](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/array_max.htm) | Return the maximum value in an array. |
| [ARRAY_MIN](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/array_min.htm) | Return the minimum value in an array. |
| [ARRAY_SORT](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/array_sort.htm) | Returns the values in the array in ascending order |
| [ARRAY_SORT_DESC](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/array_sort_desc.htm) | Returns the values in the array in descending order |
| [ARRAY_SUM](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/array_sum.htm) | This function calculates the sum of all non-null elements of the input. If there are no non-null elements, returns 0. The behavior is similar to aggregate function SUM, but operates on an array. |
| [COUNT_VALUES](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/count_values.htm) | Returns the amount of non-null items in a given array. |
| [COUNT_VALUES_IF](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/count_values_if.htm) | Returns the amount of `true` values in a given array. This can be used with conditional operators to count the number of array elements that fulfil a condition. For example, `COUNT_VALUES_IF(my_values[] > 3)` will return the number of elements that are greater than 3. |
| [ELEMENT_AT](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/element_at.htm) | This function returns an element of an array at a given index. If index &gt;= 0, this function provides the same functionality as the SQL-standard subscript operator ([]). If index &lt; 0, `ELEMENT_AT` accesses elements from the last to the first. |
| [FIRST_ELEMENT](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/first_element.htm) | Returns the first element in the array. |
| [LAST_ELEMENT](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/last_element.htm) | Returns the last element in the array. |
| [VALUE_INDEX_IN_ARRAY](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/value_index_in_array.htm) | Calculates a 1-based positional index for each non-null value within a sub-array, resetting the index with each new sub-array. |
| [VALUE_INDEX_IN_ROW](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/TransformationFunctions/array/value_index_in_row.htm) | Calculates a continuous, 1-based positional index for each value in an array, treating the entire row as a single context. It assigns a unique index to each non-null element across the arrays within the row. |