comando stats - OpenSearch Serviço Amazon

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á.

comando stats

Use o stats comando para calcular a agregação a partir do resultado da pesquisa.

nota

Para ver quais integrações AWS de fontes de dados oferecem suporte a esse PPL comando, consulteComandos.

NULL/manipulação de MISSING valores

NULL/manipulação de MISSING valores
Função NULL MISSING
COUNT Não contado Não contado
SUM Ignorar Ignorar
AVG Ignorar Ignorar
MAX Ignorar Ignorar
MIN Ignorar Ignorar
Sintaxe

Use a seguinte sintaxe:

stats <aggregation>... [by-clause]
agregação
  • Obrigatório.

  • Uma função de agregação aplicada a um campo.

cláusula acessória
  • Opcional.

  • Sintaxe: by [span-expression,] [field,]...

  • Especifica campos e expressões para agrupar os resultados da agregação. A cláusula secundária permite agrupar os resultados da agregação usando campos e expressões. Você pode usar funções escalares, funções de agregação e até mesmo expressões de amplitude para dividir campos específicos em compartimentos de intervalos iguais.

  • Padrão: se não <by-clause> for especificado, o comando stats retornará uma única linha representando a agregação em todo o conjunto de resultados.

expressão de extensão

  • Opcional, no máximo um.

  • Sintaxe: span(field_expr, interval_expr)

  • A unidade da expressão de intervalo é a unidade natural por padrão. Se o campo for do tipo data e hora e o intervalo estiver em unidades de data/hora, você especifica a unidade na expressão do intervalo.

  • Por exemplo, parece que dividir o age campo em baldes por 10 anos. span(age, 10) Para dividir um campo de carimbo de data/hora em intervalos de hora em hora, use. span(timestamp, 1h)

Unidades de tempo disponíveis
Unidades de intervalo de amplitude
milissegundo (ms)
segundo (s)
minuto (m, diferencia maiúsculas de minúsculas)
hora (h)
dia (d)
semana (w)
mês (M, diferencia maiúsculas de minúsculas)
quarto (q)
ano (y)
Funções de agregação

COUNT

Retorna uma contagem do número de expr nas linhas recuperadas por uma SELECT instrução.

Exemplo: .

os> source=accounts | stats count(); fetched rows / total rows = 1/1 +-----------+ | count() | |-----------| | 4 | +-----------+
SUM

Use SUM(expr) para retornar a soma de expr.

Exemplo

os> source=accounts | stats sum(age) by gender; fetched rows / total rows = 2/2 +------------+----------+ | sum(age) | gender | |------------+----------| | 28 | F | | 101 | M | +------------+----------+
AVG

Use AVG(expr) para retornar o valor médio de expr.

Exemplo

os> source=accounts | stats avg(age) by gender; fetched rows / total rows = 2/2 +--------------------+----------+ | avg(age) | gender | |--------------------+----------| | 28.0 | F | | 33.666666666666664 | M | +--------------------+----------+
MAX

Use MAX(expr) para retornar o valor máximo de expr.

Exemplo

os> source=accounts | stats max(age); fetched rows / total rows = 1/1 +------------+ | max(age) | |------------| | 36 | +------------+
MIN

Use MIN(expr) para retornar o valor mínimo de expr.

Exemplo

os> source=accounts | stats min(age); fetched rows / total rows = 1/1 +------------+ | min(age) | |------------| | 28 | +------------+
STDDEV_SAMP

Use STDDEV_SAMP(expr) para retornar o desvio padrão da amostra de expr.

Exemplo: .

os> source=accounts | stats stddev_samp(age); fetched rows / total rows = 1/1 +--------------------+ | stddev_samp(age) | |--------------------| | 3.304037933599835 | +--------------------+
STDDEV_POP

Use STDDEV_POP(expr) para retornar o desvio padrão da população de expr.

Exemplo: .

os> source=accounts | stats stddev_pop(age); fetched rows / total rows = 1/1 +--------------------+ | stddev_pop(age) | |--------------------| | 2.**************** | +--------------------+
TAKE

Use TAKE(field [, size]) para retornar os valores originais de um campo. Não garante a ordem dos valores.

Campo
  • Obrigatório.

  • O campo deve ser um campo de texto.

tamanho
  • Opcional inteiro.

  • O número de valores deve ser retornado.

  • O padrão é 10.

Exemplo

os> source=accounts | stats take(firstname); fetched rows / total rows = 1/1 +-----------------------------+ | take(firstname) | |-----------------------------| | [Jane, Mary, Nikki, Juan | +-----------------------------+
PERCENTILEou PERCENTILE _ APPROX

Use PERCENTILE(expr, percent) ou PERCENTILE_APPROX(expr, percent) para retornar o valor aproximado do percentil de expr na porcentagem especificada.

percentual
  • O número deve ser uma constante entre 0 e 100.

Exemplo

os> source=accounts | stats percentile(age, 90) by gender; fetched rows / total rows = 2/2 +-----------------------+----------+ | percentile(age, 90) | gender | |-----------------------+----------| | 28 | F | | 36 | M | +-----------------------+----------+
Exemplo 1: Calcular a contagem de eventos

O exemplo mostra como calcular a contagem de eventos nas contas.

os> source=accounts | stats count(); fetched rows / total rows = 1/1 +-----------+ | count() | |-----------| | 4 | +-----------+
Exemplo 2: Calcular a média de um campo

O exemplo mostra como calcular a idade média de todas as contas.

os> source=accounts | stats avg(age); fetched rows / total rows = 1/1 +------------+ | avg(age) | |------------| | 32.25 | +------------+
Exemplo 3: Calcular a média de um campo por grupo

O exemplo mostra como calcular a idade média de todas as contas, agrupadas por sexo.

os> source=accounts | stats avg(age) by gender; fetched rows / total rows = 2/2 +--------------------+----------+ | avg(age) | gender | |--------------------+----------| | 28.0 | F | | 33.666666666666664 | M | +--------------------+----------+
Exemplo 4: Calcular a média, a soma e a contagem de um campo por grupo

O exemplo mostra como calcular a idade média, a soma da idade e a contagem de eventos para todas as contas, agrupadas por sexo.

os> source=accounts | stats avg(age), sum(age), count() by gender; fetched rows / total rows = 2/2 +--------------------+------------+-----------+----------+ | avg(age) | sum(age) | count() | gender | |--------------------+------------+-----------+----------| | 28.0 | 28 | 1 | F | | 33.666666666666664 | 101 | 3 | M | +--------------------+------------+-----------+----------+
Exemplo 5: Calcular o máximo de um campo

O exemplo calcula a idade máxima para todas as contas.

os> source=accounts | stats max(age); fetched rows / total rows = 1/1 +------------+ | max(age) | |------------| | 36 | +------------+
Exemplo 6: Calcular o máximo e o mínimo de um campo por grupo

O exemplo calcula os valores de idade máxima e mínima para todas as contas, agrupados por sexo.

os> source=accounts | stats max(age), min(age) by gender; fetched rows / total rows = 2/2 +------------+------------+----------+ | max(age) | min(age) | gender | |------------+------------+----------| | 28 | 28 | F | | 36 | 32 | M | +------------+------------+----------+
Exemplo 7: Calcular a contagem distinta de um campo

Para obter a contagem de valores distintos de um campo, você pode usar a função DISTINCT_COUNT (ouDC) em vez deCOUNT. O exemplo calcula a contagem e o campo de contagem distinta de gênero de todas as contas.

os> source=accounts | stats count(gender), distinct_count(gender); fetched rows / total rows = 1/1 +-----------------+--------------------------+ | count(gender) | distinct_count(gender) | |-----------------+--------------------------| | 4 | 2 | +-----------------+--------------------------+
Exemplo 8: Calcular a contagem por um intervalo

O exemplo obtém a contagem da idade no intervalo de 10 anos.

os> source=accounts | stats count(age) by span(age, 10) as age_span fetched rows / total rows = 2/2 +--------------+------------+ | count(age) | age_span | |--------------+------------| | 1 | 20 | | 3 | 30 | +--------------+------------+
Exemplo 9: Calcular a contagem por sexo e extensão

Este exemplo conta registros agrupados por sexo e faixa etária de 5 anos.

os> source=accounts | stats count() as cnt by span(age, 5) as age_span, gender fetched rows / total rows = 3/3 +-------+------------+----------+ | cnt | age_span | gender | |-------+------------+----------| | 1 | 25 | F | | 2 | 30 | M | | 1 | 35 | M | +-------+------------+----------+

A expressão span sempre aparece como a primeira chave de agrupamento, independentemente da ordem especificada no comando.

os> source=accounts | stats count() as cnt by gender, span(age, 5) as age_span fetched rows / total rows = 3/3 +-------+------------+----------+ | cnt | age_span | gender | |-------+------------+----------| | 1 | 25 | F | | 2 | 30 | M | | 1 | 35 | M | +-------+------------+----------+
Exemplo 10: Calcule a contagem e obtenha a lista de e-mails por sexo e extensão

O exemplo obtém a contagem da idade no intervalo de 10 anos e o grupo por sexo. Além disso, para cada linha, obtenha uma lista de no máximo 5 e-mails.

os> source=accounts | stats count() as cnt, take(email, 5) by span(age, 5) as age_span, gender fetched rows / total rows = 3/3 +-------+----------------------------------------------------+------------+----------+ | cnt | take(email, 5) | age_span | gender | |-------+----------------------------------------------------+------------+----------| | 1 | [] | 25 | F | | 2 | [janedoe@anycompany.com,juanli@examplecompany.org] | 30 | M | | 1 | [marymajor@examplecorp.com] | 35 | M | +-------+----------------------------------------------------+------------+----------+
Exemplo 11: Calcular o percentil de um campo

O exemplo mostra como calcular o percentil 90º de todas as contas.

os> source=accounts | stats percentile(age, 90); fetched rows / total rows = 1/1 +-----------------------+ | percentile(age, 90) | |-----------------------| | 36 | +-----------------------+
Exemplo 12: Calcular o percentil de um campo por grupo

O exemplo mostra como calcular o percentil 90º de todas as contas agrupadas por sexo.

os> source=accounts | stats percentile(age, 90) by gender; fetched rows / total rows = 2/2 +-----------------------+----------+ | percentile(age, 90) | gender | |-----------------------+----------| | 28 | F | | 36 | M | +-----------------------+----------+
Exemplo 13: Calcule o percentil por sexo e extensão

O exemplo obtém o percentil 90ª idade no intervalo de 10 anos e o grupo por sexo.

os> source=accounts | stats percentile(age, 90) as p90 by span(age, 10) as age_span, gender fetched rows / total rows = 2/2 +-------+------------+----------+ | p90 | age_span | gender | |-------+------------+----------| | 28 | 20 | F | | 36 | 30 | M | +-------+------------+----------+
- `source = table | stats avg(a) ` - `source = table | where a < 50 | stats avg(c) ` - `source = table | stats max(c) by b` - `source = table | stats count(c) by b | head 5` - `source = table | stats distinct_count(c)` - `source = table | stats stddev_samp(c)` - `source = table | stats stddev_pop(c)` - `source = table | stats percentile(c, 90)` - `source = table | stats percentile_approx(c, 99)`
Agregações com amplitude

- `source = table | stats count(a) by span(a, 10) as a_span` - `source = table | stats sum(age) by span(age, 5) as age_span | head 2` - `source = table | stats avg(age) by span(age, 20) as age_span, country | sort - age_span | head 2`
Agregações com intervalo de janela de tempo (função de janela giratória)

- `source = table | stats sum(productsAmount) by span(transactionDate, 1d) as age_date | sort age_date` - `source = table | stats sum(productsAmount) by span(transactionDate, 1w) as age_date, productId`
Agrupamento de agregações por vários níveis

- `source = table | stats avg(age) as avg_state_age by country, state | stats avg(avg_state_age) as avg_country_age by country` - `source = table | stats avg(age) as avg_city_age by country, state, city | eval new_avg_city_age = avg_city_age - 1 | stats avg(new_avg_city_age) as avg_state_age by country, state | where avg_state_age > 18 | stats avg(avg_state_age) as avg_adult_country_age by country`