# Funciones de agregación

# min

Función de agregación que calcula el mínimo entre un grupo de valores.

Ejemplo

SELECT min(salario) FROM empleados;
SELECT departamento, min(salario) FROM empleados GROUP BY departamento;

# max

Función de agregación que calcula el máximo entre un grupo de valores.

Ejemplo

SELECT max(salario) FROM empleados;
SELECT departamento, max(salario) FROM empleados GROUP BY departamento;

# sum

Calcula la suma. Solo funciona para números.

Ejemplo:

SELECT sum(salario) FROM empleados;

# avg

Calcula la media aritmética.

avg(x)

Argumentos

x — valores de entrada, deben ser Entero, Flotante o Decimal.

Valor devuelto

  • La media aritmética, siempre como Float64.
  • NaN si el parámetro de entrada x está vacío.

Ejemplo

SELECT avg(x) FROM values('x Int8', 0, 1, 2, 3, 4, 5);
┌─avg(x)─┐
│ 2.5    │
└────────┘
CREATE table test (t UInt8) ENGINE = Memory;
SELECT avg(t) FROM test;
┌─avg(x)─┐
│ nan    │
└────────┘

# quantile

Calcula un cuantil aproximado de una secuencia de datos numéricos. Esta función aplica el muestreo de depósito con un tamaño de depósito de hasta 8192 y un generador de números aleatorios para el muestreo. El resultado no es determinista. Para obtener un cuantil exacto, use la función quantileExact.

Cuando se utilizan varias funciones quantile* con diferentes niveles en una consulta, los estados internos no se combinan (es decir, la consulta funciona de manera menos eficiente de lo que podría). En este caso, use la función quantiles.

Tenga en cuenta que para una secuencia numérica vacía, quantile devolverá NaN, pero sus variantes quantile* devolverán NaN o un valor predeterminado para el tipo de secuencia, según la variante.

quantile(level)(expr)

Alias:

median.

Argumentos

  • level — Nivel del cuantil. Parámetro opcional. Número de punto flotante constante de 0 a 1. Recomendamos usar un valor de level en el rango de [0.01, 0.99]. Valor predeterminado: 0.5. En level=0.5 la función calcula la mediana.
  • expr — Expresión sobre los valores de la columna que resultan en tipos de datos numéricos, Fecha o FechaHora.

Valor devuelto

  • Cuantil aproximado del nivel especificado.
  • Tipo:
    • Float64 para entrada de tipo de datos numéricos.
    • Fecha si los valores de entrada tienen el tipo Fecha.
    • FechaHora si los valores de entrada tienen el tipo FechaHora.

Ejemplo

CREATE table test (t UInt8) ENGINE = Memory;
INSERT INTO test values(1)(1)(2)(3)
SELECT quantile(t) FROM test
┌─quantile(t)───┐
│ 1.5           │
└───────────────┘

# entropy

  • Calcula la entropía de Shannon de una columna de valores.
  • Sintaxis
    • entropy(val)
  • Argumentos
    • val — Columna de valores de cualquier tipo.
  • Valor devuelto
    • Entropía de Shannon.
    • Tipo: Float64.
  • Ejemplo
    • Consulta:
    CREATE TABLE entropy (`vals` UInt32,`strings` String) ENGINE = Memory;
    INSERT INTO entropy VALUES (1, 'A'), (1, 'A'), (1,'A'), (1,'A'), (2,'B'), (2,'B'), (2,'C'), (2,'D');
    SELECT entropy(vals), entropy(strings) FROM entropy;
    
    • Resultado:
    ┌─entropy(vals)─┬─entropy(strings)─┐│ 11.75 │└───────────────┴──────────────────┘