Filter array dengan nilai bersarang - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Filter array dengan nilai bersarang

Larik besar sering mengandung struktur nest, dan Anda harus dapat memfilter, atau mencari, untuk nilai-nilai di dalamnya.

Untuk menentukan set data untuk larik nilai yang mencakup bersarangBOOLEANnilai, masalah kueri ini:

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

Ini mengembalikan hasil ini:

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

Selanjutnya, untuk memfilter dan mengaksesBOOLEANnilai dari elemen itu, terus menggunakan titik.notasi.

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

Kueri ini memilih bidang nest dan mengembalikan hasil ini:

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