Gunakan fungsi agregasi dengan array - Amazon Athena

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

Gunakan fungsi agregasi dengan array

  • Untuk menambahkan nilai dalam larik, gunakanSUM, seperti dalam contoh berikut.

  • Untuk agregat beberapa baris dalam larik, gunakanarray_agg. Untuk informasi, lihat Buat array dari subqueries.

catatan

ORDER BYdidukung untuk fungsi agregasi dimulai pada mesin Athena versi 2.

WITH dataset AS ( SELECT ARRAY [ ARRAY[1,2,3,4], ARRAY[5,6,7,8], ARRAY[9,0] ] AS items ), item AS ( SELECT i AS array_items FROM dataset, UNNEST(items) AS t(i) ) SELECT array_items, sum(val) AS total FROM item, UNNEST(array_items) AS t(val) GROUP BY array_items;

Pada akhirnyaSELECTpernyataan, bukan menggunakansum()danUNNEST, Anda dapat menggunakanreduce()untuk mengurangi waktu pemrosesan dan transfer data, seperti dalam contoh berikut.

WITH dataset AS ( SELECT ARRAY [ ARRAY[1,2,3,4], ARRAY[5,6,7,8], ARRAY[9,0] ] AS items ), item AS ( SELECT i AS array_items FROM dataset, UNNEST(items) AS t(i) ) SELECT array_items, reduce(array_items, 0 , (s, x) -> s + x, s -> s) AS total FROM item;

DKueri berikut mengembalikan hasil ini. Urutan hasil yang dikembalikan tidak dijamin.

+----------------------+ | array_items | total | +----------------------+ | [1, 2, 3, 4] | 10 | | [5, 6, 7, 8] | 26 | | [9, 0] | 9 | +----------------------+