Filtrage des tableaux - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Filtrage des tableaux

Créez un tableau à partir d'un ensemble de lignes si elles correspondent aux critères de filtre.

WITH dataset AS ( SELECT ARRAY[1,2,3,4,5] AS items ) SELECT array_agg(i) AS array_items FROM dataset CROSS JOIN UNNEST(items) AS t(i) WHERE i > 3

Cette requête renvoie :

+-------------+ | array_items | +-------------+ | [4, 5] | +-------------+

Filtrez un tableau selon que l'un de ses éléments contient une valeur spécifique, telle que 2, comme dans cet exemple :

WITH dataset AS ( SELECT ARRAY [ ARRAY[1,2,3,4], ARRAY[5,6,7,8], ARRAY[9,0] ] AS items ) SELECT i AS array_items FROM dataset CROSS JOIN UNNEST(items) AS t(i) WHERE contains(i, 2)

Cette requête renvoie :

+--------------+ | array_items | +--------------+ | [1, 2, 3, 4] | +--------------+

La fonction filter

filter(ARRAY [list_of_values], boolean_function)

Vous pouvez utiliser la fonction filter sur une expression ARRAY pour créer une nouvelle table qui est le sous-ensemble des éléments du tableau de la liste list_of_values pour lequel la fonction boolean_function est vraie. La fonction filter peut être utile dans les cas où vous ne pouvez pas utiliser la fonction UNNEST.

L'exemple suivant filtre les valeurs supérieures à zéro dans le tableau [1,0,5,-1].

SELECT filter(ARRAY [1,0,5,-1], x -> x>0)
Résultats

[1,5]

L'exemple suivant filtre les valeurs non nulles dans le tableau [-1, NULL, 10, NULL].

SELECT filter(ARRAY [-1, NULL, 10, NULL], q -> q IS NOT NULL)
Résultats

[-1,10]