Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones de agregación

Última actualización: Sep 02, 2026

Una función de agregación calcula un único valor a partir de un conjunto de valores. Este tema describe la sintaxis básica de las funciones de agregación y proporciona ejemplos de uso.

Simple Log Service admite las siguientes funciones de agregación.

Importante

Si desea utilizar cadenas en instrucciones analíticas, debe encerrarlas entre comillas simples (''). Las cadenas que no están encerradas o que se encuentran entre comillas dobles ("") indican nombres de campo o de columna. Por ejemplo,

'status'

indica la cadena status, mientras que

status

o

"status"

indica el campo de registro status.

Parámetro

Sintaxis

Descripción

Compatibilidad con SQL

Compatibilidad con SPL

arbitrary function

arbitrary(x)

Devuelve un valor arbitrario no NULL de x.

√

×

avg function

avg(x)

Calcula la media aritmética de x.

√

×

bitwise_and_agg function

bitwise_and_agg(x)

Devuelve el AND bit a bit de todos los valores en x.

√

×

bitwise_or_agg function

bitwise_or_agg(x)

Devuelve el OR bit a bit de todos los valores en x.

√

×

bool_and function

bool_and(boolean expression)

Devuelve true si todos los registros cumplen la condición.

La función bool_and es equivalente a la función every.

√

×

bool_or function

bool_or(boolean expression)

Devuelve true si como mínimo un registro cumple la condición.

√

×

checksum function

checksum(x)

Calcula la suma de comprobación de x.

√

×

count function

count(*)

Devuelve el número total de registros.

√

×

count(1)

Devuelve el número total de registros, lo cual equivale a count(*).

√

×

count(x)

Devuelve el número de registros donde el valor de x no es NULL.

√

×

count_if function

count_if(boolean expression)

Devuelve el número de registros que cumplen la condición especificada.

√

×

every function

every(boolean expression)

Devuelve true si todos los registros cumplen la condición.

La función every es equivalente a la función bool_and.

√

×

geometric_mean function

geometric_mean(x)

Calcula la media geométrica de x.

√

×

kurtosis function

kurtosis(x)

Calcula la curtosis de x.

√

×

map_union function

map_union(x)

Devuelve la unión de mapas en una columna. Si una clave existe en varios mapas, se elige un valor arbitrario para dicha clave.

√

×

max function

max(x)

Devuelve el valor máximo en x.

√

×

max(x, n)

Devuelve los n valores más grandes de x como un arreglo.

√

×

max_by function

max_by(x, y)

Devuelve el valor de x asociado con el valor máximo de y.

√

×

max_by(x, y, n)

Devuelve un arreglo con los valores de x correspondientes a los n valores más grandes de y.

√

×

min function

min(x)

Devuelve el valor mínimo en x.

√

×

min(x, n)

Devuelve los n valores más pequeños de x como un arreglo.

√

×

min_by function

min_by(x, y)

Devuelve el valor de x asociado con el valor mínimo de y.

√

×

min_by(x, y, n)

Devuelve un arreglo con los valores de x correspondientes a los n valores más pequeños de y.

√

×

skewness function

skewness(x)

Calcula la asimetría de x.

√

×

sum function

sum(x)

Calcula la suma de x.

√

×

Función arbitrary

La función arbitrary devuelve un valor arbitrario no nulo de la expresión x.

Sintaxis

arbitrary(x)

Parámetros

Parámetro

Descripción

x

Una expresión de cualquier tipo de dato.

Tipo de retorno

Coincide con el tipo de dato de la expresión de entrada.

Ejemplo

Devuelve un valor arbitrario no nulo del campo request_method.

  • Instrucción de consulta (Debug)

    * | SELECT
      arbitrary(request_method) AS request_method
  • La columna request_method devuelve un valor como GET.

Función avg

La función avg devuelve el promedio de los valores en x.

Sintaxis

avg(x)

Parámetros

Parámetro

Descripción

x

La columna o expresión de la cual calcular el promedio. Los valores deben ser de tipo double, bigint, decimal o real.

Tipo de valor de retorno

Un valor de tipo double.

Ejemplos

Devuelve proyectos con una latencia promedio superior a 1,000 microsegundos.

  • Instrucción de consulta (Debug)

    method: PostLogstoreLogs | SELECT
      avg(latency) AS avg_latency,
      Project
    GROUP BY
      Project
    HAVING
      avg_latency > 1000
  • La consulta devuelve un registro con una avg_latency de 3223.4162679425835 y un nombre de Project que comienza con datalab-14.

Función bitwise_and_agg

La función bitwise_and_agg devuelve el AND bit a bit de todos los valores en x.

Sintaxis

bitwise_and_agg(x)

Parámetros

Parámetro

Descripción

x

Un valor bigint.

Tipo de valor de retorno

Un valor bigint.

Ejemplos

Realiza una operación AND bit a bit sobre todos los valores del campo status.

  • Instrucción de consulta (Debug)

    * | SELECT
      bitwise_and_agg(status)
  • La consulta devuelve una sola columna llamada _col0 con un valor de 0.

Función bitwise_or_agg

La función bitwise_or_agg devuelve el resultado de la operación OR bit a bit sobre todos los valores en x.

Sintaxis

bitwise_or_agg(x)

Parámetros

Parámetro

Descripción

x

Un valor bigint.

Tipo de retorno

Un valor bigint.

Ejemplo

Realice una operación OR bit a bit sobre todos los valores del campo request_time.

  • Instrucción de consulta y análisis (Debug)

    * | SELECT
      bitwise_or_agg(request_length)
  • Los resultados de la consulta y el análisis se devuelven como una sola columna _col0, y el valor es 16383.

Función bool_and

La función bool_and devuelve true si una expresión booleana es true para todos los registros. Esta función es equivalente a la función every.

Sintaxis

bool_and(boolean expression)

Parámetros

Parámetro

Descripción

boolean expression

La expresión booleana que se va a evaluar.

Tipo de valor de retorno

boolean

Ejemplo

Este ejemplo comprueba si el valor de request_time para todos los registros es menor que 100.

  • Instrucción de consulta y análisis (Debug)

    * | SELECT
      bool_and(request_time < 100)
  • El resultado de la consulta y el análisis es true, lo que indica que el valor de request_time de todos los registros es menor que 100.

Función bool_or

La función bool_or devuelve true si una expresión booleana es true para como mínimo un registro.

Sintaxis

bool_or(boolean expression)

Parámetros

Parámetro

Descripción

boolean expression

Una expresión booleana.

Tipo de valor de retorno

boolean

Ejemplos

Para comprobar si el valor de request_time de algún registro es menor que 20:

  • Instrucción de consulta y análisis (Debug)

    * | SELECT
      bool_or(request_time < 20)
  • Los resultados de la consulta y el análisis devuelven true para la columna _col0, lo que indica que el registro contiene una entrada donde request_time es menor que 20.

Función checksum

La función checksum calcula la suma de comprobación de x.

Sintaxis

checksum(x)

Parámetros

Parámetro

Descripción

x

Una expresión de cualquier tipo de dato.

Tipo de valor de retorno

Una cadena codificada en Base64.

Ejemplo

  • Instrucción de consulta (Debug)

    * | SELECT
      checksum(request_method) AS request_method
  • La suma de comprobación del campo request_method es NDXFdgnd8GE=.

Función count

La función count cuenta registros.

Sintaxis

  • Cuenta el número total de registros.

    count(*)
  • Devuelve el número total de registros. Esto equivale a count(*).

    count(1)
  • Cuenta los registros donde x no es NULL.

    count(x)

Parámetros

Parámetro

Descripción

x

Una expresión de cualquier tipo de dato.

Tipo de valor de retorno

Un entero.

Ejemplos

  • Ejemplo 1: Contar las vistas de página del sitio web.

    • Instrucción de consulta (Debug)

      * | SELECT
        count(*) AS PV
    • Resultados de la consulta y el análisis: La tabla de resultados contiene una columna PV con el valor 2009.

  • Ejemplo 2: Contar los registros donde el campo request_method no es nulo.

    • Instrucción de consulta (Debug)

      * | SELECT
        count(request_method) AS count
    • Resultados de la consulta y el análisis: La tabla de resultados contiene una columna count con el valor 1954.

Función count_if

La función count_if cuenta los registros que cumplen una condición especificada.

Sintaxis

count_if(boolean expression)

Parámetros

Parámetro

Descripción

boolean expression

La condición que se va a evaluar.

Tipo de retorno

El recuento de registros que cumplen la condición.

Ejemplo

Cuente el número de entradas de registro donde el valor del campo request_uri termina con file-0.

  • Instrucción de consulta y análisis (debug)

    * | SELECT
      count_if(request_uri like '%file-0') AS count
  • Resultados de la consulta y el análisis

Función geometric_mean

La función geometric_mean calcula la media geométrica de x.

Sintaxis

geometric_mean(x)

Parámetros

Parámetro

Descripción

x

Un valor de tipo double, bigint o real.

Tipo de valor de retorno

Devuelve un valor double.

Ejemplo

Calcule la media geométrica del tiempo de solicitud.

  • Instrucción de consulta y análisis (Debug)

    * | SELECT
      geometric_mean(request_time) AS time
  • Los resultados de la consulta y el análisis muestran una columna time con un valor de 39.443123208882308.

Función every

La función every devuelve true si una expresión booleana se evalúa como verdadera para todos los registros. Esta función es equivalente a la función bool_and.

Sintaxis

every(boolean expression)

Parámetros

Parámetro

Descripción

boolean expression

Una expresión que devuelve un valor booleano para cada registro.

Tipo de valor de retorno

Devuelve un valor booleano.

Ejemplo

Este ejemplo comprueba si el valor de request_time en cada registro es menor que 100.

  • Instrucción de consulta y análisis (Debug)

    * | SELECT
      every(request_time < 100)
  • Resultados de la consulta y el análisis

Función kurtosis

Calcula la curtosis de x.

Sintaxis

kurtosis(x)

Parámetros

Parámetro

Descripción

x

El valor debe ser de tipo double o bigint.

Tipo de retorno

double

Ejemplo

Calcule la curtosis del campo request_time.

  • Instrucción de consulta (Debug)

    *| SELECT
      kurtosis(request_time)
  • Resultados de la consulta y el análisis

    kurtosis
    -3.0006998250171186

Función map_union

La función map_union devuelve la unión de todos los mapas en una columna. Si la misma clave existe en varios mapas de entrada, el valor para esa clave en el mapa resultante se elige de forma no determinista a partir de una de las entradas.

Sintaxis

map_union(x)

Parámetros

Parámetro

Descripción

x

Una columna de tipo map.

Tipo de valor de retorno

Devuelve un único valor de tipo map.

Ejemplo

Este ejemplo agrega los valores de mapa del campo etl_context en un solo mapa.

  • Campo de muestra

    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" }
  • Instrucción de consulta

    * | SELECT
      map_union(
        try_cast(json_parse(etl_context) AS map(varchar, varchar))
      )
  • Resultados de la consulta y el análisis: Después de ejecutar la instrucción de consulta, la columna de resultados se denomina _col0, y el valor es un mapa de pares clave-valor analizados sintácticamente desde etl_context, que contiene campos como consumer_group, shard_id, project, logstore y consumer, junto con sus valores correspondientes.

Función max

La función max devuelve el valor máximo de x.

Sintaxis

  • Devuelve el valor máximo de x.

    max(x)
  • Devuelve un arreglo con los n valores más grandes de x.

    max(x, n)

Parámetros

Parámetro

Descripción

x

Cualquier expresión.

n

Un entero positivo.

Tipo de valor devuelto

El mismo tipo de datos que la expresión de entrada.

Ejemplos

  • Ejemplo 1: Obtener el tiempo de solicitud máximo.

    • Instrucción de consulta (Debug)

      * | SELECT
        max(request_time) AS max_request_time
    • Resultados de la consulta y el análisis: El valor de max_request_time es 80.0.

  • Ejemplo 2: Obtener los 10 tiempos de solicitud más altos.

    • Instrucción de consulta (Debug)

      * | SELECT
        max(request_time, 10) AS "top 10"
    • Resultados de la consulta y el análisis: La consulta devuelve [80.0,80.0,80.0,80.0,80.0,79.0,79.0,79.0,78.0,78.0] en la columna top 10. El arreglo contiene los 10 valores más grandes de request_time en orden descendente.

Función max_by

La función max_by admite las dos sintaxis siguientes.

Sintaxis

  • Devuelve el valor de x correspondiente al valor máximo de y.

    max_by(x, y)
  • Devuelve un arreglo de valores de x correspondientes a los n valores más grandes de y.

    max_by(x, y, n)

Parámetros

Parámetro

Descripción

x

Una expresión de cualquier tipo de datos.

y

Una expresión de cualquier tipo de datos.

n

Un entero positivo.

Tipo de valor devuelto

El mismo tipo de datos que x.

Ejemplos

  • Ejemplo 1: Obtener la hora del pedido con el monto antes de impuestos más alto.

    • Instrucción de consulta y análisis

      * | SELECT
        max_by(UsageEndTime, PretaxAmount) AS time
    • Resultados de la consulta y el análisis: La columna time devuelve 1625731025.

  • Ejemplo 2: Obtener los métodos de solicitud de las tres solicitudes con los tiempos de solicitud más largos.

    • Instrucción de consulta y análisis (debug)

      * | SELECT
        max_by(request_method, request_time, 3) AS method
    • Resultados de la consulta y el análisis: El valor de method es ["POST","POST","POST"], lo cual indica que los métodos de las tres solicitudes más recientes, ordenadas por request_time, son todos POST.

Función min

La función min devuelve el valor mínimo en x.

Sintaxis

  • Devuelve el valor mínimo en x.

    min(x)
  • Devuelve los n valores más pequeños de x como un arreglo.

    min(x,n)

Parámetros

Parámetro

Descripción

x

Una expresión de cualquier tipo de datos.

n

Un entero positivo.

Tipo de valor devuelto

El mismo tipo de datos que la expresión de entrada.

Ejemplos

  • Ejemplo 1: Obtener el tiempo de solicitud mínimo.

    • Instrucción de consulta y análisis (Debug)

      * | SELECT
        min(request_time) AS min_request_time
    • Los resultados de la consulta y el análisis devuelven una columna llamada min_request_time con el valor 10.0.

  • Ejemplo 2: Obtener los 10 tiempos de solicitud más pequeños.

    • Instrucción de consulta y análisis (Debug)

      * | SELECT
        min(request_time, 10)
    • Los resultados de la consulta y el análisis devuelven una columna llamada _col0 con el valor [10.0,10.0,10.0,10.0,10.0,11.0,12.0,12.0,13.0,13.0].

Función min_by

La función min_by tiene las dos sintaxis siguientes.

Sintaxis

  • Devuelve el valor de x correspondiente al valor mínimo de y.

    min_by(x, y)
  • Devuelve un arreglo de valores de x correspondientes a los n valores más pequeños de y.

    min_by(x, y, n)

Parámetros

Parámetro

Descripción

x

Una expresión de cualquier tipo de datos.

y

Una expresión de cualquier tipo de datos.

n

Un entero positivo.

Tipo de valor devuelto

El mismo tipo de datos que el parámetro x.

Ejemplos

  • Ejemplo 1: Obtener el método de solicitud de la solicitud con el tiempo de solicitud mínimo.

    • Instrucción de consulta y análisis (Debug)

      * | SELECT
        min_by(request_method, request_time) AS method
    • Resultados de la consulta y el análisis: La columna method devuelve GET.

  • Ejemplo 2: Obtener los métodos de solicitud de las tres solicitudes con los tiempos de solicitud más pequeños.

    • Instrucción de consulta y análisis (Debug)

      * | SELECT
        min_by(request_method, request_time, 3) AS method
    • Resultados de la consulta y el análisis.

Función skewness

La función skewness calcula la asimetría de la expresión x.

Sintaxis

skewness(x)

Parámetros

Parámetro

Descripción

x

Una expresión que se evalúa como tipo double o bigint.

Tipo de valor devuelto

double

Ejemplo

Calcular la asimetría de los valores en el campo request_time.

  • Instrucción de consulta y análisis (Debug)

    *| SELECT
      skewness(request_time) AS skewness
  • Resultados de la consulta y el análisis: El valor de skewness es 0.00042944441602043965.

Función sum

La función sum suma los valores de la expresión x.

Sintaxis

sum(x)

Parámetros

Parámetro

Descripción

x

Una expresión que se evalúa como tipo double, bigint, decimal o real.

Tipo de valor devuelto

El mismo tipo de datos que la expresión de entrada.

Ejemplos

Calcular el tráfico diario de un sitio web.

  • Instrucción de consulta y análisis (debug)

    * | SELECT
      date_trunc('day', __time__) AS time,
      sum(body_bytes_sent) AS body_bytes_sent
    GROUP BY
      time
    ORDER BY
      time
  • Resultados de la consulta y el análisis: Tras ejecutar la instrucción de consulta y análisis, se devuelve una tabla de resultados estadísticos agregada por día, que contiene la suma de body_bytes_sent para un total de cinco días, del 2023-09-19 al 2023-09-23.