Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Função de janela MEDIAN

Modo de foco
Função de janela MEDIAN - Amazon Redshift

Calcula o valor mediano para o intervalo valores em uma janela ou partição. Valores NULL no intervalo são ignorados.

MEDIAN é uma função de distribuição inversa que assume um modelo de distribuição contínua.

Sintaxe

MEDIAN ( median_expression ) OVER ( [ PARTITION BY partition_expression ] )

Argumentos

median_expression

Uma expressão, tal como um nome de coluna, que fornece os valores para os quais determinar a mediana. A expressão deve ter um tipo de dados numérico ou de datetime ou ser implicitamente conversível para um.

OVER

Uma cláusula que especifica o particionamento da janela. A cláusula OVER não pode conter uma especificação de ordenação de janela ou de quadro de janela.

PARTITION BY partition_expression

Opcional. Uma expressão que define o intervalo de registros para cada grupo na cláusula OVER.

Tipos de dados

O tipo de retorno é determinado pelo tipo de dados de median_expression. A tabela a seguir mostra o tipo de retorno para cada tipo de dados de median_expression.

Tipo de entrada Tipo de retorno
INT2, INT4, INT8, NUMERIC, DECIMAL DECIMAL
FLOAT, DOUBLE DOUBLE
DATE DATE

Observações de uso

Se o argumento de median_expression é um tipo de dados DECIMAL com a precisão máxima de 38 dígitos, é possível que MEDIAN retorne um resultado impreciso ou um erro. Se o valor de retorno da função MEDIAN excede 38 dígitos, o resultado é truncado, o que causa a perda de precisão. Se, durante a interpolação, um resultado intermediário excede a precisão máxima, um excedente numérico ocorre e função retorna um erro. Para evitar essas condições, recomendamos o uso de um tipo de dados com menor precisão ou a conversão do argumento median_expression para uma precisão mais baixa.

Por exemplo, uma função SUM com um argumento DECIMAL retorna uma precisão padrão de 38 dígitos. A escala do resultado é a mesma que a escala do argumento. Portanto, por exemplo, uma SUM de uma coluna DECIMAL(5,2) retorna um tipo de dados DECIMAL(38,2).

O seguinte exemplo usa uma função SUM no argumento median_expression de uma função MEDIAN. O tipo de dados de coluna PRICEPAID é DECIMAL (8,2), portanto a função SUM retorna DECIMAL(38,2).

select salesid, sum(pricepaid), median(sum(pricepaid)) over() from sales where salesid < 10 group by salesid;

Para evitar a perda potencial de precisão ou um erro de sobrecarga, converta o resultado para um tipo de dados DECIMAL com menor precisão, conforme exibido no exemplo a seguir.

select salesid, sum(pricepaid), median(sum(pricepaid)::decimal(30,2)) over() from sales where salesid < 10 group by salesid;

Exemplos

O seguinte exemplo calcula a quantidade mediana de vendas para cada vendedor:

select sellerid, qty, median(qty) over (partition by sellerid) from winsales order by sellerid; sellerid qty median --------------------------- 1 10 10.0 1 10 10.0 1 30 10.0 2 20 20.0 2 20 20.0 3 10 17.5 3 15 17.5 3 20 17.5 3 30 17.5 4 10 25.0 4 40 25.0

Para uma descrição da tabela WINSALES, consulte Amostra de tabela para exemplos de funções de janela.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.