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

Mode fokus
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.

Dengan Amazon Redshift, Anda dapat melakukan analisis lanjutan pada kumpulan data besar menggunakan data SUPER menggunakan operator dan fungsi. Operator dan fungsi untuk data SUPER adalah konstruksi SQL 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 data SUPER di Amazon Redshift untuk membuka potensi penuh data semi-terstruktur Anda.

Operator aritmatika

Nilai SUPER mendukung semua operator aritmatika dasar +, -, *,/,% menggunakan pengetikan dinamis. Jenis operasi yang dihasilkan tetap sebagai SUPER. Untuk semua operator, kecuali untuk operator biner +, operan input harus berupa angka. Jika tidak, Amazon Redshift mengembalikan nol. 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 inputnya 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 nilai SUPER 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 di SUPER memiliki skala 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

Fungsi ABS mempertahankan skala desimal input sementara FLOOR, CEIL. ROUND menghilangkan 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 array SUPER dari nilai dalam tipe data Amazon Redshift menggunakan fungsi ARRAY, termasuk nilai SUPER lainnya. 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 fungsi SUBARRAY 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 tingkat array ke dalam array tunggal 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. Fungsi GET_ARRAY_LENGTH mengembalikan panjang array SUPER 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)

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.