Acceso a los elementos de la matriz - Amazon Athena

Acceso a los elementos de la matriz

Para obtener acceso a los elementos de una matriz, utilice el operador [] y especifique 1 para el primer elemento, 2 para el segundo elemento y así sucesivamente, tal y como se muestra en el siguiente ejemplo:

WITH dataset AS ( SELECT ARRAY[CAST(MAP(ARRAY['a1', 'a2', 'a3'], ARRAY[1, 2, 3]) AS JSON)] || ARRAY[CAST(MAP(ARRAY['b1', 'b2', 'b3'], ARRAY[4, 5, 6]) AS JSON)] AS items ) SELECT items[1] AS item FROM dataset

Esta consulta devuelve:

+------------------------+ | item | +------------------------+ | {"a1":1,"a2":2,"a3":3} | +------------------------+

Para obtener acceso a los elementos de una matriz en una determinada posición (conocida como posición de índice), utilice la función element_at() y especifique el nombre de la matriz y la posición de índice:

  • Si el índice es mayor que 0, element_at() devuelve el elemento que usted especifique, contando desde el principio hasta el final de la matriz. Actúa como el operador [].

  • Si el índice es inferior a 0, element_at() devuelve el elemento contando desde el final hasta el principio de la matriz.

La siguiente consulta crea una matriz words y selecciona el primer elemento hello de esta como first_word, el segundo elemento amazon (contando a partir del final de la matriz) como middle_word y el tercer elemento athena, como la last_word.

WITH dataset AS ( SELECT ARRAY ['hello', 'amazon', 'athena'] AS words ) SELECT element_at(words, 1) AS first_word, element_at(words, -2) AS middle_word, element_at(words, cardinality(words)) AS last_word FROM dataset

Esta consulta devuelve:

+----------------------------------------+ | first_word | middle_word | last_word | +----------------------------------------+ | hello | amazon | athena | +----------------------------------------+