- Categorias:
Funções de agregação (Geral) , Funções de janela (Geral, Quadro de janela)
STDDEV_SAMP¶
Retorna o desvio padrão da amostra (raiz quadrada da variância da amostra) de valores não NULL. Se todos os registros dentro de um grupo forem NULL, retorna NULL.
- Aliases:
Sintaxe¶
Função de agregação
STDDEV_SAMP( [ DISTINCT ] <expr1> )
Função de janela
STDDEV_SAMP( [ DISTINCT ] <expr1> ) OVER (
[ PARTITION BY <expr2> ]
[ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
)
Para obter mais detalhes sobre a sintaxe window_frame
, consulte Sintaxe e utilização do quadro de janela.
Argumentos¶
expr1
Uma expressão que avalia como um valor numérico (número inteiro, de ponto flutuante ou ponto fixo).
expr2
Esta é a expressão para divisão.
expr3
Esta é a expressão a ordenar dentro de cada partição.
Retornos¶
O tipo de dados do valor retornado é DOUBLE.
Notas de uso¶
Para entradas de registro único, STDDEV_SAMP e STDDEV retornam NULL. Isto é diferente do comportamento do Oracle, onde STDDEV_SAMP retorna NULL para um único registro e STDDEV retorna 0.
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 chamado como uma função de janela:
A palavra-chave DISTINCT é permitida sintaticamente, mas é ignorada.
Se uma subcláusula ORDER BY for usada dentro da cláusula OVER, então deve ser usado no quadro de janela. Se nenhum quadro de janela for especificado, então o ORDER BY implicará um quadro de janela cumulativo:
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
Para obter mais detalhes sobre quadros de janela, incluindo sintaxe e exemplos, consulte Sintaxe e utilização do quadro de janela.
Para obter mais informações sobre quadros de janela implícitos, consulte Notas de uso dos quadros de janela.
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);
select k, stddev_samp(v), stddev_samp(v2) from aggr group by k;
---+----------------+-----------------+
k | stddev_samp(v) | stddev_samp(v2) |
---+----------------+-----------------+
1 | [NULL] | [NULL] |
2 | 8.539125634 | 12.013880859 |
---+----------------+-----------------+