Matrices de filtres - 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.

Matrices de filtres

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] | +--------------+

Utiliser la filter fonction

filter(ARRAY [list_of_values], boolean_function)

Vous pouvez utiliser la filter fonction sur une ARRAY expression pour créer un nouveau tableau qui est le sous-ensemble des éléments du list_of_values pour lequel boolean_function est vrai. La filter fonction peut être utile dans les cas où vous ne pouvez pas utiliser 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]