Funções de janela - Amazon Timestream

Para recursos semelhantes aos do Amazon Timestream para, considere o Amazon Timestream LiveAnalytics para InfluxDB. Ele oferece ingestão de dados simplificada e tempos de resposta de consulta de um dígito em milissegundos para análises em tempo real. Saiba mais aqui.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Funções de janela

As funções de janela realizam cálculos em todas as linhas do resultado da consulta. Elas são executadas após a cláusula HAVING, mas antes da cláusula ORDER BY. A invocação de uma função de janela requer uma sintaxe especial usando a cláusula OVER para especificar a janela. Uma janela tem três componentes:

  • A especificação da partição, que separa as linhas de entrada em partições diferentes. Isso é análogo à forma como a cláusula GROUP BY separa as linhas em grupos diferentes para funções agregadas.

  • A especificação de ordenação, que determina a ordem na qual as linhas de entrada serão processadas pela função de janela.

  • A estrutura da janela, que especifica uma janela deslizante de linhas a serem processadas pela função para uma determinada linha. Se a estrutura não for especificada, o padrão será RANGE UNBOUNDED PRECEDING, que é o mesmo que RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW. Essa estrutura contém todas as linhas do início da partição até o último par da linha atual.

Todas as funções agregadas podem ser usadas como funções de janela adicionando a cláusula OVER. A função agregada é calculada para cada linha sobre as linhas dentro da moldura da janela da linha atual. Além das funções agregadas, o Timestream for LiveAnalytics suporta as seguintes funções de classificação e valor.

Função Tipo de dados de saída Description

cume_dist()

bigint

Retorna a distribuição cumulativa de um valor em um grupo de valores. O resultado é o número de linhas anteriores ou iguais à linha na ordem da janela da partição da janela dividido pelo número total de linhas na partição da janela. Assim, qualquer valor de empate na ordem será avaliado como o mesmo valor de distribuição.

dense_rank()

bigint

Retorna a classificação de um valor em um grupo de valores. É semelhante a rank(), exceto que os valores de empate não produzem lacunas na sequência.

ntile(n)

bigint

Divide as linhas de cada partição de janela em n compartimentos que variam de 1 a, no máximo, n. Os valores do bucket serão diferentes em, no máximo, 1. Se o número de linhas na partição não se dividir uniformemente no número de buckets, os valores restantes serão distribuídos um por bucket, começando pelo primeiro bucket.

percent_rank()

double

Retorna a classificação percentual de um valor em um grupo de valores. O resultado é (r - 1)/(n - 1) onde r é o rank() da linha e n é o número total de linhas na partição da janela.

rank()

bigint

Retorna a classificação de um valor em um grupo de valores. A classificação é um mais o número de linhas anteriores à linha que não são iguais à linha. Assim, valores de empate na ordenação produzirão lacunas na sequência. A classificação é executada para cada partição da janela.

row_number()

bigint

Retorna um número sequencial exclusivo para cada linha, começando com um, de acordo com a ordem das linhas na partição da janela.

first_value(x)

[o mesmo que a entrada]

Retorna o primeiro valor da janela. Essa função tem como escopo a moldura da janela. A função usa uma expressão ou destino como parâmetro.

last_value(x)

[o mesmo que a entrada]

Retorna o último valor da janela. Essa função tem como escopo a moldura da janela. A função usa uma expressão ou destino como parâmetro.

nth_value(x, offset)

[o mesmo que a entrada]

Retorna o valor na compensação especificada no início da janela. As compensações começam em 1. A compensação pode ser qualquer expressão escalar. Se a compensação for nula ou maior que o número de valores na janela, será retornado nulo. O deslocamento zero ou negativo é um erro. A função usa uma expressão ou destino como seu primeiro parâmetro.

lead(x[, offset[, default_value]])

[o mesmo que a entrada]

Retorna o valor nas linhas de deslocamento após a linha atual na janela. As compensações começam em 0, que é a linha atual. A compensação pode ser qualquer expressão escalar. A compensação padrão é 1.. Se o deslocamento for nulo ou maior que a janela, o valor_default_value será retornado ou, se não for especificado, null será retornado. A função usa uma expressão ou destino como seu primeiro parâmetro.

lag(x[, offset[, default_value]])

[o mesmo que a entrada]

Retorna o valor nas linhas de deslocamento antes da linha atual na janela. As compensações começam em 0, que é a linha atual. A compensação pode ser qualquer expressão escalar. A compensação padrão é 1.. Se o deslocamento for nulo ou maior que a janela, o valor_default_value será retornado ou, se não for especificado, null será retornado. A função usa uma expressão ou destino como seu primeiro parâmetro.