As funções da janela STDDEV_SAMP e STDDEV_POP retornam o desvio padrão da amostra e da população de um conjunto de valores numéricos (número inteiro, decimal ou ponto flutuante). Consulte também Funções STDDEV_SAMP e STDDEV_POP.
STDDEV_SAMP e STDDEV são sinônimos para a mesma função.
Sintaxe
STDDEV_SAMP | STDDEV | STDDEV_POP ( [ ALL ] expression ) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )
Argumentos
- expressão
-
A coluna ou expressão de destino na qual a função opera.
- ALL
-
Com o argumento ALL, a função retém todos os valores duplicados da expressão. ALL é o padrão. DISTINCT não é compatível.
- OVER
-
Especifica as cláusulas de janela das funções de agregação. A cláusula OVER distingue funções de agregação de janela das funções de agregação de conjuntos normais.
- PARTITION BY expr_list
-
Define a janela para a função em termos de uma ou mais expressões.
- ORDER BY order_list
-
Classifica as linhas dentro de cada partição. Se nenhuma PARTITION BY for especificada, ORDER BY usa a tabela completa.
- frame_clause
-
Se uma cláusula ORDER BY é usada para uma função agregada, uma cláusula de quadro explícita é necessária. A cláusula de quadro refina o conjunto de linhas na janela de uma função, incluindo ou excluindo conjuntos de linhas no resultado ordenado. A cláusula de quadro consiste na palavra-chave ROWS e nos especificadores associados. Consulte Resumo da sintaxe de funções da janela.
Tipos de dados
Os tipos de argumentos compatíveis com a função STDDEV são SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL e DOUBLE PRECISION.
Independente do tipo de dados da expressão, o tipo de retorno de uma função STDDEV é um número de precisão dupla.
Exemplos
O seguinte exemplo mostra como usar as funções STDDEV_POP e VAR_POP como funções da janela. A consulta computa a variação de população e o desvio padrão de população para os valores PRICEPAID na tabela SALES.
select salesid, dateid, pricepaid,
round(stddev_pop(pricepaid) over
(order by dateid, salesid rows unbounded preceding)) as stddevpop,
round(var_pop(pricepaid) over
(order by dateid, salesid rows unbounded preceding)) as varpop
from sales
order by 2,1;
salesid | dateid | pricepaid | stddevpop | varpop
--------+--------+-----------+-----------+---------
33095 | 1827 | 234.00 | 0 | 0
65082 | 1827 | 472.00 | 119 | 14161
88268 | 1827 | 836.00 | 248 | 61283
97197 | 1827 | 708.00 | 230 | 53019
110328 | 1827 | 347.00 | 223 | 49845
110917 | 1827 | 337.00 | 215 | 46159
150314 | 1827 | 688.00 | 211 | 44414
157751 | 1827 | 1730.00 | 447 | 199679
165890 | 1827 | 4192.00 | 1185 | 1403323
...
A amostra de desvio padrão e funções de variação podem ser usadas da mesma forma.