Funções agregadas - Amazon Timestream

Para recursos semelhantes aos do Amazon Timestream para LiveAnalytics, considere o Amazon Timestream 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.

Funções agregadas

O Timestream para LiveAnalytics é compatível com as seguintes funções agregadas.

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

arbitrary(x)

[o mesmo que a entrada]

Retorna um valor arbitrário não nulo de x, se existir.

SELECT arbitrary(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 1

array_agg(x)

array<[same as input]

Retorna uma matriz criada a partir dos elementos de entrada x.

SELECT array_agg(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: [ 1,2,3,4 ]

avg(x)

double

Retorna a média (média aritmética) dos valores de expressão de entrada.

SELECT avg(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 2.5

bool_and(boolean) every(boolean)

booleano

Retorna TRUE se cada valor de entrada for TRUE, caso contrário, retorna FALSE.

SELECT bool_and(t.c) FROM (VALUES true, true, false, true) AS t(c)

Exemplo de resultado: false

bool_or(boolean)

booleano

Retorna TRUE se qualquer valor de entrada for TRUE, caso contrário, retorna FALSE.

SELECT bool_or(t.c) FROM (VALUES true, true, false, true) AS t(c)

Exemplo de resultado: true

count(*) count(x)

bigint

count(*) retorna o número de linhas de entrada.

count(x) retorna o número de valores de entrada não nulos.

SELECT count(t.c) FROM (VALUES true, true, false, true) AS t(c)

Exemplo de resultado: 4

count_if(x)

bigint

Retorna o número de valores de entrada TRUE.

SELECT count_if(t.c) FROM (VALUES true, true, false, true) AS t(c)

Exemplo de resultado: 3

geometric_mean(x)

double

Retorna a média geométrica de todos os valores de entrada.

SELECT geometric_mean(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 2.213363839400643

max_by(x, y)

[igual a x]

Retorna o valor de x associado ao valor máximo de y em todos os valores de entrada.

SELECT max_by(t.c1, t.c2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

Exemplo de resultado: d

max_by(x, y, n)

array<[igual a x]>

Retorna n valores de x associados ao n maior de todos os valores de entrada de y em ordem decrescente de y.

SELECT max_by(t.c1, t.c2, 2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

Exemplo de resultado: [ d,c ]

min_by(x, y)

[igual a x]

Retorna o valor de x associado ao valor mínimo de y em todos os valores de entrada.

SELECT min_by(t.c1, t.c2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

Exemplo de resultado: a

min_by(x, y, n)

array<[igual a x]>

Retorna n valores de x associados ao menor de todos os valores de entrada de y em ordem crescente de y.

SELECT min_by(t.c1, t.c2, 2) FROM (VALUES (('a', 1)), (('b', 2)), (('c', 3)), (('d', 4))) AS t(c1, c2)

Exemplo de resultado: [ a,b ]

max(x)

[o mesmo que a entrada]

Retorna o valor máximo de todos os valores de entrada.

SELECT max(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 4

max(x, n)

array<[igual a x]>

Retorna n maiores valores de todos os valores de entrada de x.

SELECT max(t.c, 2) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: [ 4,3 ]

min(x)

[o mesmo que a entrada]

Retorna o valor mínimo de todos os valores de entrada.

SELECT min(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 1

min(x, n)

array<[igual a x]>

Retorna n menores valores de todos os valores de entrada de x.

SELECT min(t.c, 2) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: [ 1,2 ]

sum(x)

[o mesmo que a entrada]

Retorna a soma de todos os valores de entrada.

SELECT sum(t.c) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 10

bitwise_and_agg(x)

12345678

Retorna o AND bitwise de todos os valores de entrada na representação do complemento 2 s.

SELECT bitwise_and_agg(t.c) FROM (VALUES 1, -3) AS t(c)

Exemplo de resultado: 1

bitwise_or_agg(x)

bigint

Retorna o OR bitwise de todos os valores de entrada na representação do complemento 2 s.

SELECT bitwise_or_agg(t.c) FROM (VALUES 1, -3) AS t(c)

Exemplo de resultado: -3

approx_distinct(x)

bigint

Retorna o número aproximado de valores de entrada distintos. Essa função fornece uma aproximação de count(DISTINCT x). O valor retornado será Zero se todos os valores de entrada forem nulos. Essa função deve produzir um erro padrão de 2,3%, que é o desvio padrão da distribuição de erro (aproximadamente normal) em todos os conjuntos possíveis. Isso não garante um limite superior para o erro para nenhum conjunto de entrada específico.

SELECT approx_distinct(t.c) FROM (VALUES 1, 2, 3, 4, 8) AS t(c)

Exemplo de resultado: 5

approx_distinct(x, e)

bigint

Retorna o número aproximado de valores de entrada distintos. Essa função fornece uma aproximação de count(DISTINCT x). O valor retornado será Zero se todos os valores de entrada forem nulos. Essa função deve produzir um erro padrão de não mais que e, que é o desvio padrão da distribuição de erro (aproximadamente normal) em todos os conjuntos possíveis. Isso não garante um limite superior para o erro para nenhum conjunto de entrada específico. A implementação atual dessa função exige que e esteja na faixa de [0,0040625, 0,26000].

SELECT approx_distinct(t.c, 0.2) FROM (VALUES 1, 2, 3, 4, 8) AS t(c)

Exemplo de resultado: 5

approx_percentile(x, percentage)

[igual a x]

Retorna o percentil aproximado para todos os valores de entrada de x na porcentagem dada. O valor da porcentagem deve estar entre zero e um e deve ser constante para todas as linhas de entrada.

SELECT approx_percentile(t.c, 0.4) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 2

approx_percentile(x, percentages)

array<[igual a x]>

Retorna o percentil aproximado para todos os valores de entrada de x em cada uma das porcentagens especificadas. Cada elemento da matriz de porcentagens deve estar entre zero e um, e a matriz deve ser constante para todas as linhas de entrada.

SELECT approx_percentile(t.c, ARRAY[0.1, 0.8, 0.8]) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: [ 1,4,4 ]

approx_percentile(x, w, percentage)

[igual a x]

Retorna o percentil ponderado aproximado para todos os valores de entrada de x usando o peso por item w na porcentagem p. O peso deve ser um valor inteiro de pelo menos um. É efetivamente uma contagem de replicação para o valor x no conjunto de percentis. O valor de p deve estar entre zero e um e deve ser constante para todas as linhas de entrada.

SELECT approx_percentile(t.c, 1, 0.1) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 1

approx_percentile(x, w, percentages)

array<[igual a x]>

Retorna o percentil ponderado aproximado para todos os valores de entrada de x usando o peso por item w em cada uma das porcentagens especificadas na matriz. O peso deve ser um valor inteiro de pelo menos um. É efetivamente uma contagem de replicação para o valor x no conjunto de percentis. Cada elemento da matriz deve estar entre zero e um, e a matriz deve ser constante para todas as linhas de entrada.

SELECT approx_percentile(t.c, 1, ARRAY[0.1, 0.8, 0.8]) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: [ 1,4,4 ]

approx_percentile(x, w, percentage, accuracy)

[igual a x]

Retorna o percentil ponderado aproximado para todos os valores de entrada de x usando o peso por item w na porcentagem p, com um erro máximo de classificação de precisão. O peso deve ser um valor inteiro de pelo menos um. É efetivamente uma contagem de replicação para o valor x no conjunto de percentis. O valor de p deve estar entre zero e um e deve ser constante para todas as linhas de entrada. A precisão deve ser um valor maior que zero e menor que um, e deve ser constante para todas as linhas de entrada.

SELECT approx_percentile(t.c, 1, 0.1, 0.5) FROM (VALUES 1, 2, 3, 4) AS t(c)

Exemplo de resultado: 1

corr(y, x)

double

Retorna o coeficiente de correlação dos valores de entrada.

SELECT corr(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

Exemplo de resultado: 1.0

covar_pop(y, x)

double

Retorna a covariância populacional dos valores de entrada.

SELECT covar_pop(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

Exemplo de resultado: 1.25

covar_samp(y, x)

double

Retorna a covariância da amostra dos valores de entrada.

SELECT covar_samp(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

Exemplo de resultado: 1.6666666666666667

regr_intercept(y, x)

double

Retorna a interceptação de regressão linear dos valores de entrada. y é o valor dependente e x é o valor independente.

SELECT regr_intercept(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

Exemplo de resultado: 0.0

regr_slope(y, x)

double

Retorna a inclinação da regressão linear dos valores de entrada. y é o valor dependente e x é o valor independente.

SELECT regr_slope(t.c1, t.c2) FROM (VALUES ((1, 1)), ((2, 2)), ((3, 3)), ((4, 4))) AS t(c1, c2)

Exemplo de resultado: 1.0

skewness(x)

double

Retorna a distorção de todos os valores de entrada.

SELECT skewness(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

Exemplo de resultado: 0.8978957037987335

stddev_pop(x)

double

Retorna o desvio padrão da população de todos os valores de entrada.

SELECT stddev_pop(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

Exemplo de resultado: 2.4166091947189146

stddev_samp(x) stddev(x)

double

Retorna o desvio padrão da amostra de todos os valores de entrada.

SELECT stddev_samp(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

Exemplo de resultado: 2.701851217221259

var_pop(x)

double

Retorna a variância populacional de todos os valores de entrada.

SELECT var_pop(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

Exemplo de resultado: 5.840000000000001

var_samp(x) variance(x)

double

Retorna a variância da amostra de todos os valores de entrada.

SELECT var_samp(t.c1) FROM (VALUES 1, 2, 3, 4, 8) AS t(c1)

Exemplo de resultado: 7.300000000000001