Description
Le combinateur Resample
peut être appliqué à la fonction d’agrégation count
pour compter les valeurs d’une colonne de clé dans un nombre fixe
d’intervalles (N).
Exemple d’utilisation
Exemple simple
Examinons un exemple. Nous allons créer une table contenant les champs name, age et
wage des employés, puis y insérer des 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);Calculons le salaire moyen des personnes dont l’âge se situe dans les intervalles [30,60)
et [60,75) ([ est exclusif et ) inclusif). Comme nous utilisons une
représentation entière pour l’âge, nous obtenons des âges dans les intervalles [30, 59] et [60,74].
Pour ce faire, nous appliquons le combinateur Resample à la fonction d’agrégation avg.
WITH avg_wage AS
(
SELECT avgResample(30, 75, 30)(wage, age) AS original_avg_wage
FROM employee_data
)
SELECT
arrayMap(x -> round(x, 3), original_avg_wage) AS avg_wage_rounded
FROM avg_wage;┌─avg_wage_rounded─┐
│ [11.5,12.95] │
└──────────────────┘