Filtrar matrizes com uso de UNNEST - Amazon Athena

Filtrar matrizes com uso de UNNEST

Para filtrar uma matriz que inclua uma estrutura aninhada por um dos elementos filho, emita uma consulta com um operador UNNEST. Para obter mais informações sobre UNNEST, consulte Nivelar matrizes aninhadas.

Por exemplo, esta consulta encontra nomes de host de sites no conjunto de dados.

WITH dataset AS ( SELECT ARRAY[ CAST( ROW('aws.amazon.com', ROW(true)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN)) ), CAST( ROW('news.cnn.com', ROW(false)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN)) ), CAST( ROW('netflix.com', ROW(false)) AS ROW(hostname VARCHAR, flaggedActivity ROW(isNew BOOLEAN)) ) ] as items ) SELECT sites.hostname, sites.flaggedActivity.isNew FROM dataset, UNNEST(items) t(sites) WHERE sites.flaggedActivity.isNew = true

Ela retorna:

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