Categorias:

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

VAR_POP

Retorna a variância da população de registros não NULL em um grupo. Se todos os registros dentro de um grupo forem NULL, um NULL é retornado.

Aliases:

VARIANCE_POP

Sintaxe

Função de agregação

VAR_POP( [ DISTINCT ] <expr1> )
Copy

Função de janela

VAR_POP( [ DISTINCT ] <expr1> ) OVER (
                                     [ PARTITION BY <expr2> ]
                                     [ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
                                     )
Copy

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

Argumentos

expr1

O expr1 deve ser avaliado como um dos tipos de dados numéricos.

expr2

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

expr3

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

Retornos

O tipo de dados do valor retornado é NUMBER(<precisão>, <escala>). A escala depende dos valores que estão sendo processados.

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

Este exemplo mostra como usar a função VAR_POP:

Criar e preencher uma tabela:

create table aggr(k int, v decimal(10,2), v2 decimal(10, 2));
insert into aggr values 
   (1, 10, null),
   (2, 10, 11), 
   (2, 20, 22), 
   (2, 25, null), 
   (2, 30, 35);
Copy

Consulte a tabela, chamando VAR_POP():

SELECT k, var_pop(v), var_pop(v2) 
    FROM aggr 
    GROUP BY k
    ORDER BY k;
+---+---------------+---------------+
| K |    VAR_POP(V) |   VAR_POP(V2) |
|---+---------------+---------------|
| 1 |  0.0000000000 |          NULL |
| 2 | 54.6875000000 | 96.2222222222 |
+---+---------------+---------------+
Copy