

 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/). 

# Expressões compostas
<a name="r_compound_expressions"></a>

Uma expressão composta é uma série de expressões simples juntadas por operadores aritméticos. Uma expressão simples usada em uma expressão composta deve retornar um valor numérico.

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

```
expression 
operator 
expression | (compound_expression)
```

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

 *expressão*   
Uma expressão simples que avalia para um valor.

 *Operador*   
 Uma expressão aritmética composta pode ser construída usando os seguintes operadores, nesta ordem de precedência:  
+ ( ) : parênteses para controlar a ordem de avaliação
+ \$1 , - : sinal/operador positivo e negativo
+  ^ , \$1/ , \$1\$1/ : potenciação, raiz quadrada, raiz cúbica
+ \$1 , / , % : multiplicação, divisão e operadores de módulo
+  @ : valor absoluto
+ \$1 , - : adição e subtração
+ & , \$1, \$1, \$1, <<, >> : AND, OR, NOT, shift esquerda, shift direita
+ \$1\$1: concatenação

 *(compound\$1expression)*   
Expressões compostas podem ser aninhadas usando parênteses.

## Exemplos
<a name="r_compound_expressions-examples"></a>

Exemplos de expressões compostas incluem o seguinte:

```
('SMITH' || 'JONES')
sum(x) / y
sqrt(256) * avg(column)
rank() over (order by qtysold) / 100
(select (pricepaid - commission) from sales where dateid = 1882) * (qtysold)
```

Algumas funções também podem ser aninhadas em outras funções. Por exemplo, qualquer função escalar pode aninhar-se em outra função escalar. O seguinte exemplo retorna a soma dos valores absolutos de um conjunto de números:

```
sum(abs(qtysold))
```

Funções da janela não podem ser usadas como argumentos para funções agregadas ou outras funções da janela. A seguinte expressão retornaria um erro:

```
avg(rank() over (order by qtysold))
```

Funções da janela podem ter uma função agregada aninhada. A seguinte expressão soma conjuntos de valores e depois os classifica:

```
rank() over (order by sum(qtysold))
```