BIT_ AND fungsi - Amazon Redshift

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

BIT_ AND fungsi

ANDFungsi BIT _ menjalankan AND operasi 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.

ANDFungsi BIT _ mengembalikan hasil 0 jika tidak ada bit diatur ke 1 di semua nilai. Jika satu atau lebih bit diatur ke 1 di semua nilai, fungsi mengembalikan nilai integer. Integer ini adalah angka yang sesuai dengan nilai biner untuk bit-bit tersebut.

Misalnya, tabel 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

ANDOperasi BIT _ pada dataset ini menemukan bahwa semua bit diatur ke 1 dalam second-to-last posisi saja. Hasilnya adalah nilai biner00000010, yang mewakili nilai 2 integer. Oleh karena itu, AND fungsi BIT _ kembali2.

Sintaks

BIT_AND ( [DISTINCT | ALL] expression )

Argumen

ekspresi

Kolom target atau ekspresi tempat fungsi beroperasi. Ekspresi ini harus memilikiINT,INT2, atau tipe INT8 data. Fungsi mengembalikan setaraINT,INT2, atau tipe INT8 data.

DISTINCT | ALL

Dengan argumenDISTINCT, fungsi menghilangkan semua nilai duplikat untuk ekspresi yang ditentukan sebelum menghitung hasilnya. Dengan argumenALL, fungsi mempertahankan semua nilai duplikat. ALLadalah default. Untuk informasi selengkapnya, lihat DISTINCTdukungan untuk agregasi bit-wise.

Contoh

Mengingat bahwa informasi bisnis yang bermakna disimpan dalam kolom integer, Anda dapat menggunakan fungsi bit-wise untuk mengekstrak dan mengumpulkan informasi tersebut. Kueri berikut menerapkan AND fungsi BIT _ ke LIKES kolom dalam tabel yang disebut USERLIKES dan mengelompokkan hasil menurut CITY kolom.

select city, bit_and(likes) from userlikes group by city order by city; city | bit_and --------------+--------- Los Angeles | 0 Sacramento | 0 San Francisco | 0 San Jose | 64 Santa Barbara | 192 (5 rows)

Anda dapat menafsirkan hasil ini sebagai berikut:

  • Nilai integer 192 untuk Santa Barbara diterjemahkan ke nilai biner. 11000000 Dengan kata lain, semua pengguna di kota ini menyukai olahraga dan teater, tetapi tidak semua pengguna menyukai jenis acara lainnya.

  • Integer 64 diterjemahkan menjadi. 01000000 Jadi, bagi pengguna di San Jose, satu-satunya jenis acara yang mereka sukai adalah teater.

  • Nilai 0 untuk tiga kota lainnya menunjukkan bahwa tidak ada “suka” yang dibagikan oleh semua pengguna di kota-kota tersebut.