Filtern von Arrays mit verschachtelten Werten - Amazon Athena

Filtern von Arrays mit verschachtelten Werten

Große Arrays enthalten oft verschachtelte Strukturen und Sie müssen die darin enthaltenen Werte filtern oder suchen können.

Um ein Dataset für ein Array mit Werten zu definieren, das einen verschachtelten BOOLEAN-Wert enthält, senden Sie die folgende Abfrage:

WITH dataset AS ( SELECT CAST( ROW('aws.amazon.com', ROW(true)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN)) ) AS sites ) SELECT * FROM dataset

Sie erhalten das folgende Ergebnis:

+----------------------------------------------------------+ | sites | +----------------------------------------------------------+ | {HOSTNAME=aws.amazon.com, FLAGGEDACTIVITY={ISNEW=true}} | +----------------------------------------------------------+

Verwenden Sie nun zum Filtern von und Zugreifen auf den BOOLEAN-Wert dieses Elements die Punkt-.-Notation.

WITH dataset AS ( SELECT CAST( ROW('aws.amazon.com', ROW(true)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN)) ) AS sites ) SELECT sites.hostname, sites.flaggedactivity.isnew FROM dataset

Mit dieser Abfrage werden die verschachtelten Felder ausgewählt und folgendes Ergebnis zurückgegeben:

+------------------------+ | hostname | isnew | +------------------------+ | aws.amazon.com | true | +------------------------+