El
combinador Resample puede aplicarse a la función de agregación groupArray para
dividir el rango de una columna clave especificada en un número fijo de intervalos (N)
y construir el array resultante seleccionando un valor representativo
(correspondiente a la clave mínima) de los puntos de datos que caen en cada intervalo.
Crea una vista submuestreada de los datos en lugar de recopilar todos los valores.
Veamos un ejemplo. Crearemos una tabla con name, age y
wage de los empleados, e insertaremos algunos datos en ella:
CREATE TABLE employee_data
(
name String,
age UInt8,
wage Float32
) ENGINE = MergeTree()
ORDER BY tuple()
INSERT INTO employee_data (name, age, wage) VALUES
('John', 16, 10.0),
('Alice', 30, 15.0),
('Mary', 35, 8.0),
('Evelyn', 48, 11.5),
('David', 62, 9.9),
('Brian', 60, 16.0);
Obtengamos los nombres de las personas cuyas edades están en los intervalos [30,60)
y [60,75). Como usamos una representación entera para la edad, obtenemos edades en los
intervalos [30, 59] y [60,74].
Para agrupar nombres en un Array, usamos la función de agregación groupArray.
Recibe un argumento. En nuestro caso, es la columna de nombre. La función groupArrayResample
debe usar la columna de edad para agrupar los nombres por edad. Para definir los
intervalos necesarios, pasamos 30, 75, 30 como argumentos a la función groupArrayResample:
SELECT groupArrayResample(30, 75, 30)(name, age) FROM employee_data
┌─groupArrayResample(30, 75, 30)(name, age)─────┐
│ [['Alice','Mary','Evelyn'],['David','Brian']] │
└───────────────────────────────────────────────┘
Última modificación el 10 de junio de 2026