Fungsi BIT_OR - Amazon Redshift

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

Fungsi BIT_OR

Fungsi BIT_OR menjalankan operasi OR bit-wise pada semua nilai dalam kolom atau ekspresi integer tunggal. Fungsi ini menggabungkan setiap bit dari setiap nilai biner yang sesuai dengan setiap nilai integer dalam ekspresi.

Misalnya, tabel Anda berisi empat nilai integer dalam kolom: 3, 7, 10, dan 22. Bilangan bulat ini direpresentasikan dalam bentuk biner sebagai berikut.

Bilangan Bulat Nilai biner
3 11
7 111
10 1010
22 10110

Jika Anda menerapkan fungsi BIT_OR ke kumpulan nilai integer, operasi mencari nilai apa pun di mana a 1 ditemukan di setiap posisi. Dalam hal ini, a 1 ada di lima posisi terakhir untuk setidaknya satu dari nilai, menghasilkan hasil biner00011111; oleh karena itu, fungsi mengembalikan 31 (atau16 + 8 + 4 + 2 + 1).

Sintaks

BIT_OR ( [DISTINCT | ALL] expression )

Argumen

ekspresi

Kolom target atau ekspresi tempat fungsi beroperasi. Ekspresi ini harus memiliki tipe data INT, INT2, atau INT8. Fungsi mengembalikan tipe data INT, INT2, atau INT8 yang setara.

BERBEDA | SEMUA

Dengan argumen DISTINCT, fungsi menghilangkan semua nilai duplikat untuk ekspresi yang ditentukan sebelum menghitung hasilnya. Dengan argumen ALL, fungsi mempertahankan semua nilai duplikat. ALL adalah default. Untuk informasi selengkapnya, lihat Dukungan DISTINCT untuk agregasi bit-wise.

Contoh

Kueri berikut menerapkan fungsi BIT_OR ke kolom SUKA dalam tabel yang disebut USERLIKES dan mengelompokkan hasil menurut kolom CITY.

select city, bit_or(likes) from userlikes group by city order by city; city | bit_or --------------+-------- Los Angeles | 127 Sacramento | 255 San Francisco | 255 San Jose | 255 Santa Barbara | 255 (5 rows)

Untuk empat kota yang terdaftar, semua jenis acara disukai oleh setidaknya satu pengguna (255=11111111). Untuk Los Angeles, semua jenis acara kecuali olahraga disukai oleh setidaknya satu pengguna (127=01111111).