Bit functions

GoogleSQL for BigQuery supports the following bit functions.

Function list

Name Summary
BIT_AND Performs a bitwise AND operation on an expression.
For more information, see Aggregate functions .
BIT_COUNT Gets the number of bits that are set in an input expression.
BIT_OR Performs a bitwise OR operation on an expression.
For more information, see Aggregate functions .
BIT_XOR Performs a bitwise XOR operation on an expression.
For more information, see Aggregate functions .

BIT_COUNT

  BIT_COUNT 
 ( 
 expression 
 ) 
 

Description

The input, expression , must be an integer or BYTES .

Returns the number of bits that are set in the input expression . For signed integers, this is the number of bits in two's complement form.

Return Data Type

INT64

Example

  SELECT 
  
 a 
 , 
  
 BIT_COUNT 
 ( 
 a 
 ) 
  
 AS 
  
 a_bits 
 , 
  
 FORMAT 
 ( 
 "%T" 
 , 
  
 b 
 ) 
  
 as 
  
 b 
 , 
  
 BIT_COUNT 
 ( 
 b 
 ) 
  
 AS 
  
 b_bits 
 FROM 
  
 UNNEST 
 ( 
 [ 
  
 STRUCT 
 ( 
 0 
  
 AS 
  
 a 
 , 
  
 b 
 '' 
  
 AS 
  
 b 
 ), 
  
 ( 
 0 
 , 
  
 b 
 ' 
 \ 
 x00' 
 ), 
  
 ( 
 5 
 , 
  
 b 
 ' 
 \ 
 x05' 
 ), 
  
 ( 
 8 
 , 
  
 b 
 ' 
 \ 
 x00 
 \ 
 x08' 
 ), 
  
 ( 
 0xFFFF 
 , 
  
 b 
 ' 
 \ 
 xFF 
 \ 
 xFF' 
 ), 
  
 ( 
 - 
 2 
 , 
  
 b 
 ' 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFE' 
 ), 
  
 ( 
 - 
 1 
 , 
  
 b 
 ' 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF' 
 ), 
  
 ( 
 NULL 
 , 
  
 b 
 ' 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF 
 \ 
 xFF' 
 ) 
 ] 
 ) 
  
 AS 
  
 x 
 ; 
 /*-------+--------+---------------------------------------------+--------* 
 | a     | a_bits | b                                           | b_bits | 
 +-------+--------+---------------------------------------------+--------+ 
 | 0     | 0      | b""                                         | 0      | 
 | 0     | 0      | b"\x00"                                     | 0      | 
 | 5     | 2      | b"\x05"                                     | 2      | 
 | 8     | 1      | b"\x00\x08"                                 | 1      | 
 | 65535 | 16     | b"\xff\xff"                                 | 16     | 
 | -2    | 63     | b"\xff\xff\xff\xff\xff\xff\xff\xfe"         | 63     | 
 | -1    | 64     | b"\xff\xff\xff\xff\xff\xff\xff\xff"         | 64     | 
 | NULL  | NULL   | b"\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" | 80     | 
 *-------+--------+---------------------------------------------+--------*/ 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: