Passer au contenu principal

Description

Le Resample combinator peut être appliqué à la fonction d’agrégation groupArray afin de diviser la plage de valeurs d’une colonne clé spécifiée en un nombre fixe d’intervalles (N) et de construire le tableau résultant en sélectionnant une valeur représentative (correspondant à la clé minimale) parmi les points de données appartenant à chaque intervalle. Il crée une vue sous-échantillonnée des données au lieu de collecter toutes les valeurs.

Exemple d’utilisation

Examinons un exemple. Nous allons créer une table contenant name, age et wage des employés, puis y insérer quelques données :
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);
Récupérons les noms des personnes dont l’âge se situe dans les intervalles [30,60) et [60,75). Comme nous utilisons une représentation entière pour l’âge, nous obtenons donc des âges dans les intervalles [30, 59] et [60,74]. Pour regrouper les noms dans un tableau, nous utilisons la fonction d’agrégation groupArray. Elle prend un argument. Dans notre cas, il s’agit de la colonne name. La fonction groupArrayResample doit utiliser la colonne age pour regrouper les noms par âge. Pour définir les intervalles requis, nous passons 30, 75, 30 comme arguments à la fonction groupArrayResample :
SELECT groupArrayResample(30, 75, 30)(name, age) FROM employee_data
┌─groupArrayResample(30, 75, 30)(name, age)─────┐
│ [['Alice','Mary','Evelyn'],['David','Brian']] │
└───────────────────────────────────────────────┘

Voir aussi

Dernière modification le 25 juin 2026