Todos os produtos
Search
Central de documentação

Simple Log Service:Funções de agregação

Última atualização: Jul 03, 2026

Uma função de agregação calcula um único valor a partir de um conjunto de valores. Este tópico descreve a sintaxe básica das funções de agregação e fornece exemplos de uso.

Simple Log Service oferece suporte às seguintes funções de agregação.

Importante

Para usar strings em instruções analíticas, coloque-as entre aspas simples (''). Strings sem aspas ou entre aspas duplas ("") indicam nomes de campos ou colunas. Por exemplo,

'status'

indica a string status, enquanto

status

ou

"status"

indica o campo de log status.

Parâmetro

Sintaxe

Descrição

Suporte SQL

Suporte SPL

função arbitrary

arbitrary(x)

Retorna um valor arbitrário não NULL de x.

×

função avg

avg(x)

Calcula a média aritmética de x.

×

função bitwise_and_agg

bitwise_and_agg(x)

Retorna o AND bit a bit de todos os valores em x.

×

função bitwise_or_agg

bitwise_or_agg(x)

Retorna o OR bit a bit de todos os valores em x.

×

função bool_and

bool_and(expressão booleana)

Retorna true se todos os logs atenderem à condição.

A função bool_and equivale à função every.

×

função bool_or

bool_or(expressão booleana)

Retorna true se pelo menos um log atender à condição.

×

função checksum

checksum(x)

Calcula o checksum de x.

×

função count

count(*)

Retorna o número total de logs.

×

count(1)

Retorna o número total de logs, equivalente a count(*).

×

count(x)

Retorna o número de logs em que o valor de x não é NULL.

×

função count_if

count_if(expressão booleana)

Retorna o número de logs que atendem à condição especificada.

×

função every

every(expressão booleana)

Retorna true se todos os logs atenderem à condição.

A função every equivale à função bool_and.

×

função geometric_mean

geometric_mean(x)

Calcula a média geométrica de x.

×

função kurtosis

kurtosis(x)

Calcula a curtose de x.

×

função map_union

map_union(x)

Retorna a união de mapas em uma coluna. Se uma chave existir em vários mapas, um valor arbitrário para essa chave será escolhido.

×

função max

max(x)

Retorna o valor máximo em x.

×

max(x, n)

Retorna os n maiores valores em x como um array.

×

função max_by

max_by(x, y)

Retorna o valor de x associado ao valor máximo de y.

×

max_by(x, y, n)

Retorna um array com os valores de x correspondentes aos n maiores valores de y.

×

função min

min(x)

Retorna o valor mínimo em x.

×

min(x, n)

Retorna os n menores valores em x como um array.

×

função min_by

min_by(x, y)

Retorna o valor de x associado ao valor mínimo de y.

×

min_by(x, y, n)

Retorna um array com os valores de x correspondentes aos n menores valores de y.

×

função skewness

skewness(x)

Calcula a assimetria de x.

×

função sum

sum(x)

Calcula a soma de x.

×

Função arbitrary

A função arbitrary retorna um valor arbitrário não nulo da expressão x.

Sintaxe

arbitrary(x)

Parâmetros

Parâmetro

Descrição

x

Uma expressão de qualquer tipo de dados.

Tipo de retorno

Corresponde ao tipo de dados da expressão de entrada.

Exemplo

Retorne um valor arbitrário não nulo do campo request_method.

  • Instrução de consulta (Debug)

    * | SELECT
      arbitrary(request_method) AS request_method
  • A coluna request_method retorna um valor como GET.

Função avg

A função avg retorna a média dos valores em x.

Sintaxe

avg(x)

Parâmetros

Parâmetro

Descrição

x

A coluna ou expressão para calcular a média. Os valores devem ser do tipo double, bigint, decimal ou real.

Tipo de valor de retorno

Um valor do tipo double.

Exemplos

Retorne projetos com latência média superior a 1.000 microssegundos.

  • Instrução de consulta (Debug)

    method: PostLogstoreLogs | SELECT
      avg(latency) AS avg_latency,
      Project
    GROUP BY
      Project
    HAVING
      avg_latency > 1000
  • A consulta retorna um registro com avg_latency de 3223.4162679425835 e um nome de Project que começa com datalab-14.

Função bitwise_and_agg

A função bitwise_and_agg retorna o AND bit a bit de todos os valores em x.

Sintaxe

bitwise_and_agg(x)

Parâmetros

Parâmetro

Descrição

x

Um valor bigint.

Tipo de valor de retorno

Um valor bigint.

Exemplos

Execute uma operação AND bit a bit em todos os valores do campo status.

  • Instrução de consulta (Debug)

    * | SELECT
      bitwise_and_agg(status)
  • A consulta retorna uma única coluna chamada _col0 com valor 0.

Função bitwise_or_agg

A função bitwise_or_agg retorna o resultado da operação OR bit a bit em todos os valores em x.

Sintaxe

bitwise_or_agg(x)

Parâmetros

Parâmetro

Descrição

x

Um valor bigint.

Tipo de retorno

Um valor bigint.

Exemplo

Execute uma operação OR bit a bit em todos os valores do campo request_time.

  • Instrução de consulta e análise (Debug)

    * | SELECT
      bitwise_or_agg(request_length)
  • Os resultados da consulta e análise são retornados como uma única coluna _col0, e o valor é 16383.

Função bool_and

A função bool_and retorna true se uma expressão booleana for true para todos os logs. Essa função equivale à função every.

Sintaxe

bool_and(boolean expression)

Parâmetros

Parâmetro

Descrição

boolean expression

A expressão booleana a ser avaliada.

Tipo de valor de retorno

boolean

Exemplo

Este exemplo verifica se o valor de request_time para todos os logs é menor que 100.

  • Instrução de consulta e análise (Debug)

    * | SELECT
      bool_and(request_time < 100)
  • O resultado da consulta e análise é true, o que indica que o valor de request_time de todos os logs é menor que 100.

Função bool_or

A função bool_or retorna true se uma expressão booleana for true para pelo menos um log.

Sintaxe

bool_or(boolean expression)

Parâmetros

Parâmetro

Descrição

boolean expression

Uma expressão booleana.

Tipo de valor de retorno

boolean

Exemplos

Para verificar se o request_time de algum log é menor que 20:

  • Instrução de consulta e análise (Debug)

    * | SELECT
      bool_or(request_time < 20)
  • Os resultados da consulta e análise retornam true para a coluna _col0, o que indica que o log contém um registro onde request_time é menor que 20.

Função checksum

A função checksum calcula o checksum de x.

Sintaxe

checksum(x)

Parâmetros

Parâmetro

Descrição

x

Uma expressão de qualquer tipo de dados.

Tipo de valor de retorno

Uma string codificada em Base64.

Exemplo

  • Instrução de consulta (Debug)

    * | SELECT
      checksum(request_method) AS request_method
  • O checksum do campo request_method é NDXFdgnd8GE=.

Função count

A função count conta logs.

Sintaxe

  • Conta o número total de logs.

    count(*)
  • Retorna o número total de logs. Equivalente a count(*).

    count(1)
  • Conta logs onde x não é NULL.

    count(x)

Parâmetros

Parâmetro

Descrição

x

Uma expressão de qualquer tipo de dados.

Tipo de valor de retorno

Um inteiro.

Exemplos

  • Exemplo 1: Contar visualizações de página do site.

    • Instrução de consulta (Debug)

      * | SELECT
        count(*) AS PV
    • Resultados da consulta e análise: A tabela de resultados contém uma coluna PV com o valor 2009.

  • Exemplo 2: Contar logs onde o campo request_method não é nulo.

    • Instrução de consulta (Debug)

      * | SELECT
        count(request_method) AS count
    • Resultados da consulta e análise: A tabela de resultados contém uma coluna count com o valor 1954.

Função count_if

A função count_if conta logs que atendem a uma condição especificada.

Sintaxe

count_if(boolean expression)

Parâmetros

Parâmetro

Descrição

boolean expression

A condição a ser avaliada.

Tipo de retorno

A contagem de logs que atendem à condição.

Exemplo

Conte o número de entradas de log onde o valor do campo request_uri termina com file-0.

  • Instrução de consulta e análise (debug)

    * | SELECT
      count_if(request_uri like '%file-0') AS count
  • Resultados da consulta e análise

Função geometric_mean

A função geometric_mean calcula a média geométrica de x.

Sintaxe

geometric_mean(x)

Parâmetros

Parâmetro

Descrição

x

Um valor do tipo double, bigint ou real.

Tipo de valor de retorno

Retorna um valor double.

Exemplo

Calcule a média geométrica do tempo de requisição.

  • Instrução de consulta e análise (Debug)

    * | SELECT
      geometric_mean(request_time) AS time
  • Os resultados da consulta e análise mostram uma coluna time com valor de 39.443123208882308.

Função every

A função every retorna true se uma expressão booleana for verdadeira para todos os logs. Essa função equivale à função bool_and.

Sintaxe

every(boolean expression)

Parâmetros

Parâmetro

Descrição

boolean expression

Uma expressão que retorna um valor booleano para cada log.

Tipo de valor de retorno

Retorna um valor booleano.

Exemplo

Este exemplo verifica se o valor de request_time em cada log é menor que 100.

  • Instrução de consulta e análise (Debug)

    * | SELECT
      every(request_time < 100)
  • Resultados da consulta e análise

Função kurtosis

Calcula a curtose de x.

Sintaxe

kurtosis(x)

Parâmetros

Parâmetro

Descrição

x

O valor deve ser double ou bigint.

Tipo de retorno

double

Exemplo

Calcule a curtose do campo request_time.

  • Instrução de consulta (Debug)

    *| SELECT
      kurtosis(request_time)
  • Resultados da consulta e análise

    kurtosis
    -3.0006998250171186

Função map_union

A função map_union retorna a união de todos os mapas em uma coluna. Se a mesma chave existir em vários mapas de entrada, o valor para essa chave no mapa resultante é escolhido de forma não determinística a partir de uma das entradas.

Sintaxe

map_union(x)

Parâmetros

Parâmetro

Descrição

x

Uma coluna do tipo map.

Tipo de valor de retorno

Retorna um único valor do tipo map.

Exemplo

Este exemplo agrega valores de mapa do campo etl_context em um único mapa.

  • Campo de amostra

    etl_context: {
     project:"datalab-148****6461-cn-chengdu"
     logstore:"internal-etl-log"
     consumer_group:"etl-83****4d1965"
     consumer:"etl-b2d40ed****c8d6-291294"
     shard_id:"0" }
  • Instrução de consulta

    * | SELECT
      map_union(
        try_cast(json_parse(etl_context) AS map(varchar, varchar))
      )
  • Resultados da consulta e análise: Após a execução da instrução de consulta, a coluna de resultado é nomeada _col0, e o valor é um mapa de pares chave-valor analisados de etl_context, contendo campos como consumer_group, shard_id, project, logstore e consumer, além de seus valores correspondentes.

Função max

A função max retorna o valor máximo de x.

Sintaxe

  • Retorna o valor máximo de x.

    max(x)
  • Retorna um array com os n maiores valores de x.

    max(x, n)

Parâmetros

Parâmetro

Descrição

x

Qualquer expressão.

n

Um inteiro positivo.

Tipo de valor de retorno

O mesmo tipo de dados da expressão de entrada.

Exemplos

  • Exemplo 1: Encontrar o tempo máximo de requisição.

    • Instrução de consulta (Debug)

      * | SELECT
        max(request_time) AS max_request_time
    • Resultados da consulta e análise: O valor de max_request_time é 80.0.

  • Exemplo 2: Encontrar os 10 maiores tempos de requisição.

    • Instrução de consulta (Debug)

      * | SELECT
        max(request_time, 10) AS "top 10"
    • Resultados da consulta e análise: A consulta retorna [80.0,80.0,80.0,80.0,80.0,79.0,79.0,79.0,78.0,78.0] para a coluna top 10. O array contém os 10 maiores valores de request_time em ordem decrescente.

Função max_by

A função max_by oferece suporte às duas sintaxes a seguir.

Sintaxe

  • Retorna o valor de x para o valor máximo de y.

    max_by(x, y)
  • Retorna um array de valores x para os n maiores valores de y.

    max_by(x, y, n)

Parâmetros

Parâmetro

Descrição

x

Uma expressão de qualquer tipo de dados.

y

Uma expressão de qualquer tipo de dados.

n

Um inteiro positivo.

Tipo de valor de retorno

Igual ao tipo de dados de x.

Exemplos

  • Exemplo 1: Encontrar o horário do pedido com o maior valor antes de impostos.

    • Instrução de consulta e análise

      * | SELECT
        max_by(UsageEndTime, PretaxAmount) AS time
    • Resultados da consulta e análise: A coluna time retorna 1625731025.

  • Exemplo 2: Encontrar os métodos de requisição para as três requisições com os maiores tempos de requisição.

    • Instrução de consulta e análise (debug)

      * | SELECT
        max_by(request_method, request_time, 3) AS method
    • Resultados da consulta e análise: O valor de method é ["POST","POST","POST"], o que indica que os métodos das três requisições mais recentes ordenadas por request_time são todos POST.

Função min

A função min retorna o valor mínimo em x.

Sintaxe

  • Retorna o valor mínimo em x.

    min(x)
  • Retorna os n menores valores em x como um array.

    min(x,n)

Parâmetros

Parâmetro

Descrição

x

Uma expressão de qualquer tipo de dados.

n

Um inteiro positivo.

Tipo de valor de retorno

Igual ao tipo de dados da expressão de entrada.

Exemplos

  • Exemplo 1: Encontrar o tempo mínimo de requisição.

    • Instrução de consulta e análise (Debug)

      * | SELECT
        min(request_time) AS min_request_time
    • Os resultados da consulta e análise retornam uma coluna chamada min_request_time com o valor 10.0.

  • Exemplo 2: Encontrar os 10 menores tempos de requisição.

    • Instrução de consulta e análise (Debug)

      * | SELECT
        min(request_time, 10)
    • Os resultados da consulta e análise retornam uma coluna chamada _col0 com o valor [10.0,10.0,10.0,10.0,10.0,11.0,12.0,12.0,13.0,13.0].

Função min_by

A função min_by possui as duas sintaxes a seguir.

Sintaxe

  • Retorna o valor de x para o valor mínimo de y.

    min_by(x, y)
  • Retorna um array de valores x para os n menores valores de y.

    min_by(x, y, n)

Parâmetros

Parâmetro

Descrição

x

Uma expressão de qualquer tipo de dados.

y

Uma expressão de qualquer tipo de dados.

n

Um inteiro positivo.

Tipo de valor de retorno

O mesmo tipo de dados do parâmetro x.

Exemplos

  • Exemplo 1: Encontrar o método de requisição para a requisição com o menor tempo de requisição.

    • Instrução de consulta e análise (Debug)

      * | SELECT
        min_by(request_method, request_time) AS method
    • Resultados da consulta e análise: A coluna method retorna GET.

  • Exemplo 2: Encontrar os métodos de requisição para as três requisições com os menores tempos de requisição.

    • Instrução de consulta e análise (Debug)

      * | SELECT
        min_by(request_method, request_time, 3) AS method
    • Resultados da consulta e análise.

Função skewness

A função skewness calcula a assimetria da expressão x.

Sintaxe

skewness(x)

Parâmetros

Parâmetro

Descrição

x

Uma expressão que resulta em um tipo double ou bigint.

Tipo de valor de retorno

double

Exemplo

Calcule a assimetria dos valores no campo request_time.

  • Instrução de consulta e análise (Debug)

    *| SELECT
      skewness(request_time) AS skewness
  • Resultados da consulta e análise: O valor de skewness é 0.00042944441602043965.

Função sum

A função sum soma os valores na expressão x.

Sintaxe

sum(x)

Parâmetros

Parâmetro

Descrição

x

Uma expressão que resulta em um tipo double, bigint, decimal ou real.

Tipo de valor de retorno

Igual ao tipo de dados da expressão de entrada.

Exemplos

Calcule o tráfego diário de um site.

  • Instrução de consulta e análise (debug)

    * | SELECT
      date_trunc('day', __time__) AS time,
      sum(body_bytes_sent) AS body_bytes_sent
    GROUP BY
      time
    ORDER BY
      time
  • Resultados da consulta e análise: Após a execução da instrução de consulta e análise, uma tabela de resultados estatísticos agregada por dia é retornada, contendo a soma de body_bytes_sent para um total de cinco dias, de 2023-09-19 a 2023-09-23.