Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi BIT_AND menjalankan operasi AND 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.
Fungsi BIT_AND 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 |
Sebuah operasi BIT_AND pada dataset ini menemukan bahwa semua bit diatur ke 1
dalam posisi saja. second-to-last Hasilnya adalah nilai biner00000010
, yang mewakili nilai 2
integer. Oleh karena itu, fungsi BIT_AND kembali. 2
Sintaksis
BIT_AND ( [DISTINCT | ALL] expression )
Argumen
- ekspresi
-
Kolom target atau ekspresi tempat fungsi beroperasi. Ekspresi ini harus memiliki INT, INT2, atau tipe INT8 data. Fungsi mengembalikan INT setara, INT2, atau tipe INT8 data.
- 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
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 fungsi BIT_AND ke kolom LIKES dalam tabel yang disebut USERLIKES dan mengelompokkan hasil menurut kolom CITY.
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.