Filter array - Amazon Athena

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

Filter array

Membuat larik dari koleksi baris jika mereka cocok dengan kriteria filter.

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

Kueri ini kembali:

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

Filter larik berdasarkan apakah salah satu unsur-unsurnya mengandung nilai tertentu, seperti 2, seperti dalam contoh ini:

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)

Kueri ini menghasilkan:

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

Gunakan filter fungsi

filter(ARRAY [list_of_values], boolean_function)

Anda dapat menggunakan filter fungsi pada ARRAY ekspresi untuk membuat array baru yang merupakan bagian dari item dalam list_of_values untuk mana boolean_function adalah benar. filterFungsi ini dapat berguna dalam kasus di mana Anda tidak dapat menggunakan UNNEST fungsi.

Contoh berikut filter untuk nilai yang lebih besar dari nol dalam array[1,0,5,-1].

SELECT filter(ARRAY [1,0,5,-1], x -> x>0)
Hasil

[1,5]

Contoh berikut filter untuk nilai-nilai non-null dalam array. [-1, NULL, 10, NULL]

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

[-1,10]