

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Função BIT\_AND
<a name="r_BIT_AND"></a>

A função BIT\_AND executa operações AND bit-wise em todos os valores em uma única coluna ou expressão de inteiros. Essa função agrega cada bit de cada valor binário que corresponde a cada valor inteiro na expressão.

A função BIT\_AND retorna um resultado de `0` se nenhum dos bits estiver definido como 1 ao longo de todos os valores. Se um ou mais bits estiver definido como 1 ao longo de todos os valores, a função retorna um valor inteiro. Este inteiro é o número que corresponde ao valor binário para os bits.

Por exemplo, uma tabela contém quatro valores inteiros em uma coluna: 3, 7, 10 e 22. Esses números inteiros são representados na forma binária da seguinte forma:


| Inteiro | Valor binário | 
| --- | --- | 
| 3 |  11 | 
| 7 | 111 | 
| 10 | 1010 | 
| 22 | 10110 | 

Uma operação de BIT\_AND neste conjunto de dados identifica que todos os bits estão definidos como `1` somente na penúltima posição. O resultado é um valor binário de `00000010`, que representa o valor inteiro `2`. Portanto, a função BIT\_AND retorna `2`.

## Sintaxe
<a name="r_BIT_AND-synopsis"></a>

```
BIT_AND ( [DISTINCT | ALL] expression )
```

## Argumentos
<a name="r_BIT_AND-arguments"></a>

 *expressão *   
A coluna ou expressão de destino na qual a função opera. Essa expressão deve ter um tipo de dados INT, INT2 ou INT8. A função retorna um tipo de dados INT, INT2 ou INT8 equivalente.

DISTINCT \| ALL  
Com o argumento DISTINCT, a função elimina todos os valores duplicados para a expressão especificada antes de calcular o resultado. Com o argumento ALL, a função retém todos os valores duplicados. ALL é o padrão. Para obter mais informações, consulte [Compatibilidade DISTINCT para agregações bit-wise](c_bitwise_aggregate_functions.md#distinct-support-for-bit-wise-aggregations).

## Exemplos
<a name="r_bit_end_example"></a>

Considerando que informações comerciais significativas são armazenadas em colunas de inteiros, você pode usar funções bit-wise para extrair e agregar essas informações. A seguinte consulta aplica a função BIT\_AND na coluna de LIKES em uma tabela chamada USERLIKES e agrupa os resultados pela coluna 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)
```

Esses resultados podem ser interpretados da seguinte forma:
+ O valor inteiro `192` para Santa Bárbara é traduzido para o valor binário `11000000`. Em outras palavras, todos os usuários nesta cidade gostam de esportes e de teatro, mas nem todos os usuários gostam de qualquer outro tipo de evento.
+ O inteiro `64` o traduz para `01000000`. Portanto, para os usuários de San José, o único tipo de evento de que todos gostam é o teatro.
+ Os valores de `0` para as outras três cidades indicam que nenhum “gosto” é compartilhado por todos os usuários nessas cidades.