SummingMergeTree automatically sums numeric columns when merging rows with the same ORDER BY key. It's a simpler alternative to AggregatingMergeTree when you only need sum aggregations.
import { OlapTable, ClickHouseEngines } from "@514labs/moose-lib"; interface DailyMetrics { date: Date; page: string; views: number; clicks: number; revenue: number;} const metrics = new OlapTable<DailyMetrics>("daily_metrics", { engine: ClickHouseEngines.SummingMergeTree, orderByFields: ["date", "page"]});| Option | Type | Description |
|---|---|---|
orderByFields | string[] | Columns that define the merge key (required) |
columns | string[] | Optional allowlist of numeric columns to sum (defaults to all numeric columns) |
By default, all numeric columns are summed. You can restrict which columns are summed:
const metrics = new OlapTable<DailyMetrics>("daily_metrics", { engine: ClickHouseEngines.SummingMergeTree, orderByFields: ["date", "page"], columns: ["views", "clicks"] // Only sum these columns});const metrics = new OlapTable<DailyMetrics>("daily_metrics", { engine: ClickHouseEngines.SummingMergeTree, orderByFields: ["date", "page"], columns: ["views", "clicks"] // Only sum these columns});SummingMergeTree only supports summation. For other aggregations (max, min, count distinct), use AggregatingMergeTree instead.
SimpleAggregateFunction and AggregateFunction modeling