Função BIT_OR - Amazon Redshift

Função BIT_OR

A função BIT_OR executa operações OR 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.

Por exemplo, suponha que sua tabela contenha quatro valores inteiros em uma coluna: 3, 7, 10 e 22. Esses inteiros são representados na forma binária da maneira a seguir.

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

Se você aplicar a função BIT_OR ao conjunto de valores inteiros, a operação procurará qualquer valor em que 1 for encontrado em cada posição. Nesse caso, 1 existe nas últimas cinco posições para pelo menos um dos valores, produzindo um resultado binário de 00011111; portanto, função retorna 31 (ou 16 + 8 + 4 + 2 + 1).

Sintaxe

BIT_OR ( [DISTINCT | ALL] expression )

Argumentos

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.

Exemplo

A seguinte consulta aplica a função BIT_OR à coluna LIKES em uma tabela chamada USERLIKES e agrupa os resultados pela coluna CITY.

select city, bit_or(likes) from userlikes group by city order by city; city | bit_or --------------+-------- Los Angeles | 127 Sacramento | 255 San Francisco | 255 San Jose | 255 Santa Barbara | 255 (5 rows)

Para quatro da cidades listadas, todos os tipos de evento são apreciados por pelo menos um usuário (255=11111111). Para Los Angeles, todos os tipos de evento, exceto esportes, são apreciados por pelo menos um usuário (127=01111111).