Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Operator dan fungsi - Amazon Redshift

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

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

Operator dan fungsi

Dengan Amazon Redshift, Anda dapat melakukan analisis lanjutan pada kumpulan data besar menggunakan SUPER data menggunakan operator dan fungsi. Operator dan fungsi untuk SUPER data adalah SQL konstruksi yang memungkinkan analisis kompleks dan manipulasi data semi-terstruktur yang disimpan dalam tabel Amazon Redshift.

Bagian berikut akan mencakup sintaks, contoh, dan praktik terbaik untuk menggunakan operator dan fungsi untuk SUPER data di Amazon Redshift untuk membuka potensi penuh data semi-terstruktur Anda.

Operator aritmatika

SUPERnilai mendukung semua operator aritmatika dasar +, -, *,/,% menggunakan pengetikan dinamis. Jenis operasi yang dihasilkan tetap sebagaiSUPER. Untuk semua operator, kecuali operator biner +, operan input harus berupa angka. Jika tidak, Amazon Redshift mengembalikan null. Perbedaan antara nilai desimal dan floating-point dipertahankan saat Amazon Redshift menjalankan operator ini dan tipe dinamis tidak berubah. Namun, skala desimal berubah saat Anda menggunakan perkalian dan pembagian. Limpahan aritmatika masih menyebabkan kesalahan kueri, mereka tidak diubah menjadi null. Operator biner+melakukan penambahan jika input adalah angka atau penggabungan jika inputnya adalah string. Jika satu operan adalah string dan operan lainnya adalah angka, hasilnya adalah nol. Operator awalan unary + dan - mengembalikan null jika SUPER nilainya bukan angka seperti yang ditunjukkan pada contoh berikut:

SELECT (c_orders[0]. o_orderkey + 0.5) * c_orders[0]. o_orderkey / 10 AS math FROM customer_orders_lineitem; math ---------------------------- 1757958232200.1500 (1 row)

Pengetikan dinamis memungkinkan nilai desimal memiliki skala SUPER yang berbeda. Amazon Redshift memperlakukan nilai desimal seolah-olah mereka adalah tipe statis yang berbeda dan memungkinkan semua operasi matematika. Amazon Redshift menghitung skala yang dihasilkan secara dinamis berdasarkan skala operan. Jika salah satu operan adalah angka floating-point, maka Amazon Redshift mempromosikan operan lainnya ke nomor floating-point dan menghasilkan hasilnya sebagai angka floating-point.

Fungsi aritmatika

Amazon Redshift mendukung fungsi aritmatika berikut untuk kolom. SUPER Mereka mengembalikan null jika inputnya bukan angka:

Contoh berikut menggunakan fungsi aritmatika untuk query data:

SELECT x, FLOOR(x), CEIL(x), ROUND(x) FROM ( SELECT (c_orders[0]. o_orderkey + 0.5) * c_orders[0].o_orderkey / 10 AS x FROM customer_orders_lineitem ); x | floor | ceil | round --------------------+---------------+---------------+--------------- 1389636795898.0500 | 1389636795898 | 1389636795899 | 1389636795898

ABSFungsi mempertahankan skala desimal input sementara,. FLOOR CEIL ROUNDMenghilangkan skala desimal input.

Fungsi array

Amazon Redshift mendukung komposisi array berikut dan fungsi utilitas array array, array_concat, subarray, array_flatten, get_array_length, dan split_to_array.

Anda dapat membuat SUPER array dari nilai dalam tipe data Amazon Redshift menggunakan fungsi, termasuk ARRAY nilai lainnya. SUPER Contoh berikut menggunakan fungsi variadik: ARRAY

SELECT ARRAY(1, c.c_custkey, NULL, c.c_name, 'abc') FROM customer_orders_lineitem c; array ------------------------------------------------------- [1,8401,null,""Customer#000008401"",""abc""] [1,9452,null,""Customer#000009452"",""abc""] [1,9451,null,""Customer#000009451"",""abc""] [1,8251,null,""Customer#000008251"",""abc""] [1,5851,null,""Customer#000005851"",""abc""] (5 rows)

Contoh berikut menggunakan rangkaian array dengan fungsi _: ARRAY CONCAT

SELECT ARRAY_CONCAT(JSON_PARSE('[10001,10002]'),JSON_PARSE('[10003,10004]')); array_concat ------------------------------------ [10001,10002,10003,10004] (1 row)

Contoh berikut menggunakan manipulasi array dengan SUBARRAY fungsi yang mengembalikan subset dari array input.

SELECT SUBARRAY(ARRAY('a', 'b', 'c', 'd', 'e', 'f'), 2, 3); subarray --------------- ["c","d","e"] (1 row))

Contoh berikut menggabungkan beberapa level array ke dalam satu array menggunakan ARRAY _: FLATTEN

SELECT x, ARRAY_FLATTEN(x) FROM (SELECT ARRAY(1, ARRAY(2, ARRAY(3, ARRAY()))) AS x); x | array_flatten ----------------+--------------- [1,[2,[3,[]]]] | [1,2,3] (1 row)

Fungsi array ARRAY _ CONCAT dan ARRAY _ FLATTEN menggunakan aturan pengetikan dinamis. Mereka mengembalikan null alih-alih kesalahan jika input bukan array. LENGTHFungsi GET ARRAY _ _ mengembalikan panjang SUPER array yang diberikan objek atau jalur array.

SELECT c_name FROM customer_orders_lineitem WHERE GET_ARRAY_LENGTH(c_orders) = ( SELECT MAX(GET_ARRAY_LENGTH(c_orders)) FROM customer_orders_lineitem );

Contoh berikut membagi string ke array string menggunakan SPLIT _TO_. ARRAY Fungsi ini menggunakan pembatas sebagai parameter opsional. Jika tidak ada pembatas yang tidak ada, maka defaultnya adalah koma.

SELECT SPLIT_TO_ARRAY('12|345|6789', '|'); split_to_array --------------------- ["12","345","6789"] (1 row)
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.