Fungsi agregat bit-wise - Amazon Redshift

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

Fungsi agregat bit-wise

Fungsi agregat bit-wise menghitung operasi bit untuk melakukan agregasi kolom integer dan kolom yang dapat dikonversi atau dibulatkan ke nilai integer.

Menggunakan NULLs agregasi bit-wise

Saat Anda menerapkan fungsi bit-wise ke kolom yang nullable, NULL nilai apa pun dihilangkan sebelum hasil fungsi dihitung. Jika tidak ada baris yang memenuhi syarat untuk agregasi, fungsi bit-wise akan kembali. NULL Perilaku yang sama berlaku untuk fungsi agregat reguler. Berikut adalah contohnya.

select sum(venueseats), bit_and(venueseats) from venue where venueseats is null; sum | bit_and ------+--------- null | null (1 row)

DISTINCTdukungan untuk agregasi bit-wise

Seperti fungsi agregat lainnya, fungsi bit-wise mendukung kata kunci. DISTINCT

Namun, menggunakan DISTINCT dengan fungsi-fungsi ini tidak berdampak pada hasil. Contoh pertama dari suatu nilai cukup untuk memenuhi operasi bit-wise AND atau OR. Tidak ada bedanya jika nilai duplikat hadir dalam ekspresi yang sedang dievaluasi.

Karena DISTINCT pemrosesan kemungkinan akan menimbulkan beberapa overhead eksekusi kueri, sebaiknya Anda tidak menggunakan fungsi DISTINCT bit-wise.

Contoh ikhtisar untuk fungsi bit-wise

Berikut ini, Anda dapat menemukan beberapa contoh ikhtisar yang menunjukkan cara bekerja dengan fungsi bit-wise. Anda juga dapat menemukan contoh kode spesifik dengan setiap deskripsi fungsi.

Contoh untuk fungsi bit-wise didasarkan pada database TICKIT sampel. USERSTabel dalam database TICKIT sampel berisi beberapa kolom Boolean yang menunjukkan apakah setiap pengguna diketahui menyukai berbagai jenis acara, seperti olahraga, teater, opera, dan sebagainya. Berikut contohnya.

select userid, username, lastname, city, state, likesports, liketheatre from users limit 10; userid | username | lastname | city | state | likesports | liketheatre -------+----------+-----------+--------------+-------+------------+------------- 1 | JSG99FHE | Taylor | Kent | WA | t | t 9 | MSD36KVR | Watkins | Port Orford | MD | t | f

Asumsikan bahwa versi baru USERS tabel dibangun dengan cara yang berbeda. Dalam versi baru ini, kolom integer tunggal yang mendefinisikan (dalam bentuk biner) delapan jenis peristiwa yang disukai atau tidak disukai setiap pengguna. Dalam desain ini, setiap posisi bit mewakili jenis acara. Seorang pengguna yang menyukai semua delapan jenis memiliki semua delapan bit diatur ke 1 (seperti pada baris pertama dari tabel berikut). Seorang pengguna yang tidak menyukai peristiwa ini memiliki semua delapan bit disetel ke 0 (lihat baris kedua). Seorang pengguna yang hanya menyukai olahraga dan jazz diwakili di baris ketiga berikut.

SPORTS THEATRE JAZZ OPERA ROCK VEGAS BROADWAY CLASSICAL
Pengguna 1 1 1 1 1 1 1 1 1
Pengguna 2 0 0 0 0 0 0 0 0
Pengguna 3 1 0 1 0 0 0 0 0

Dalam tabel database, nilai-nilai biner ini dapat disimpan dalam satu LIKES kolom sebagai bilangan bulat, seperti yang ditunjukkan berikut.

Pengguna Nilai biner Nilai tersimpan (integer)
Pengguna 1 11111111 255
Pengguna 2 00000000 0
Pengguna 3 10100000 160