Categorias:

Funções de agregação (Geral) , Funções de janela (Geral, Quadro de janela)

STDDEV_POP

Retorna o desvio padrão da população (raiz quadrada da variância) de valores não NULL. Se todos os registros dentro de um grupo forem NULL, retorna NULL.

Sintaxe

Função de agregação

STDDEV_POP( [ DISTINCT ] expression_1)
Copy

Função de janela

STDDEV_POP( [ DISTINCT ] <expression_1> ) OVER (
                                        [ PARTITION BY <expression_2> ]
                                        [ ORDER BY <expression_3> [ ASC | DESC ] [ <window_frame> ] ]
                                        )
Copy

Para obter mais detalhes sobre a sintaxe window_frame, consulte Sintaxe e utilização do quadro de janela.

Argumentos

expression_1

Uma expressão que é avaliada como um valor numérico. Esta é a expressão na qual é calculado o desvio padrão.

expression_2

Esta é a expressão opcional para divisão.

expression_3

Esta é a expressão opcional a ordenar dentro de cada partição.

Retornos

O tipo de dados do valor retornado é DOUBLE.

Notas de uso

  • Ao passar uma expressão VARCHAR, esta função converte implicitamente a entrada em valores de ponto flutuante. Se a conversão não puder ser executada, um erro é devolvido.

  • Quando esta função é chamada como uma função de janela (ou seja, com uma cláusula OVER):

    • Se a cláusula OVER contiver uma subcláusula ORDER BY, então:

      • O quadro de janela é exigido. Se nenhum quadro de janela for especificado explicitamente, então o ORDER BY implicará um quadro de janela cumulativo:

        RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

        Para obter mais informações sobre quadros de janelas, incluindo sintaxe e exemplos, consulte Sintaxe e utilização do quadro de janela.

        Para obter mais informações sobre quadros de janelas implícitos, consulte também Notas de uso dos quadros de janela.

      • O uso da palavra-chave DISTINCT dentro da função de janela é proibido e resulta em um erro de tempo de compilação.

Exemplos

create or replace table aggr(k int, v decimal(10,2), v2 decimal(10, 2));
insert into aggr values(1, 10, null);
insert into aggr values(2, 10, 11), (2, 20, 22), (2, 25,null), (2, 30, 35);
Copy
select k, stddev_pop(v), stddev_pop(v2) from aggr group by k;

---+---------------+----------------+
 k | stddev_pop(v) | stddev_pop(v2) |
---+---------------+----------------+
 1 | 0             | [NULL]         |
 2 | 7.395099729   | 9.809292645    |
---+---------------+----------------+
Copy