content/shared/sql-reference/functions/struct.md
Use struct functions to create Arrow structs in SQL queries.
Returns an Arrow struct using the specified name and input expressions pairs.
named_struct(expression1_name, expression1_input[, ..., expression_n_name, expression_n_input])
{{< expand-wrapper >}}
{{% expand "View named_struct query example" %}}
The following example uses the {{% influxdb3/home-sample-link %}}.
SELECT
named_struct('time', time, 'temperature', temp, 'humidity', hum) AS named_struct
FROM
home
WHERE
room = 'Kitchen'
LIMIT 4
| named_struct |
|---|
| {time: 2022-01-01T13:00:00, temperature: 22.8, humidity: 36.5} |
| {time: 2022-01-01T12:00:00, temperature: 22.5, humidity: 36.0} |
| {time: 2022-01-01T15:00:00, temperature: 22.7, humidity: 36.2} |
| {time: 2022-01-01T18:00:00, temperature: 23.3, humidity: 36.9} |
{{% /expand %}} {{< /expand-wrapper >}}
Alias of struct.
Returns an Arrow struct using the specified input expressions optionally named.
Fields in the returned struct use the optional name or the cN naming convention.
Fields in the returned struct use the cN naming convention (for example: c0, c1, c2, etc.)
unless you specify custom names using the AS operator within individual expressions.
struct(expression1[, ..., expression_n])
{{< expand-wrapper >}}
{{% expand "View struct query example" %}}
The following example uses the {{% influxdb3/home-sample-link %}}.
SELECT
struct(time, temp, hum) AS struct
FROM
home
WHERE
room = 'Kitchen'
LIMIT 4
{{% influxdb/custom-timestamps %}}
| struct |
|---|
| {c0: 2022-01-01T13:00:00, c1: 22.8, c2: 36.5} |
| {c0: 2022-01-01T12:00:00, c1: 22.5, c2: 36.0} |
| {c0: 2022-01-01T15:00:00, c1: 22.7, c2: 36.2} |
| {c0: 2022-01-01T18:00:00, c1: 23.3, c2: 36.9} |
{{% /influxdb/custom-timestamps %}}
{{% /expand %}}
{{% expand "View struct query example with named fields" %}}
Use the AS operator in a struct expression argument to assign a name to the
struct field.
The following example uses the {{% influxdb3/home-sample-link %}}.
SELECT
struct(time AS 'time', temp AS 'temperature', hum) AS struct
FROM
home
WHERE
room = 'Kitchen'
LIMIT 4
{{% influxdb/custom-timestamps %}}
| struct |
|---|
| {time: 2022-01-01T13:00:00, temperature: 22.8, c2: 36.5} |
| {time: 2022-01-01T12:00:00, temperature: 22.5, c2: 36.0} |
| {time: 2022-01-01T15:00:00, temperature: 22.7, c2: 36.2} |
| {time: 2022-01-01T18:00:00, temperature: 23.3, c2: 36.9} |
{{% /influxdb/custom-timestamps %}}
{{% /expand %}} {{< /expand-wrapper >}}