FiveonefourFiveonefour
Fiveonefour Docs
MooseStackTemplatesGuides
Release Notes
Source514
  1. MooseStack
  2. Table Engines
  3. SummingMergeTree

On this page

When to UseUsageConfiguration OptionsExample: Choosing Columns to SumSee Also

SummingMergeTree

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.

When to Use

  • Simple counters and metrics (page views, clicks, totals)
  • Incrementing values by key
  • When you only need SUM operations (not MAX, MIN, etc.)

Usage

from moose_lib import OlapTable, OlapConfig, SummingMergeTreeEnginefrom pydantic import BaseModelfrom datetime import date class DailyMetrics(BaseModel):    date: date    page: str    views: int    clicks: int    revenue: float metrics = OlapTable[DailyMetrics]("daily_metrics", OlapConfig(    engine=SummingMergeTreeEngine(),    order_by_fields=["date", "page"]))

Configuration Options

OptionTypeDescription
orderByFieldsstring[]Columns that define the merge key (required)
columnsstring[]Optional allowlist of numeric columns to sum (defaults to all numeric columns)

Example: Choosing Columns to Sum

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});
Sum-only limitation

SummingMergeTree only supports summation. For other aggregations (max, min, count distinct), use AggregatingMergeTree instead.

  • ClickHouse SummingMergeTree docs

See Also

  • AggregatingMergeTree — For non-sum aggregations / aggregate states
  • Aggregate Types — SimpleAggregateFunction and AggregateFunction modeling
  • Replicated Engines — For high availability
metrics = OlapTable[DailyMetrics]("daily_metrics", OlapConfig(    engine=SummingMergeTreeEngine(columns=["views", "clicks"]),    order_by_fields=["date", "page"]))
  • Overview
Build a New App
  • 5 Minute Quickstart
  • Browse Templates
  • Existing ClickHouse
Add to Existing App
  • Next.js
  • Fastify
Fundamentals
  • Moose Runtime
  • MooseDev MCP
  • Data Modeling
Moose Modules
  • Moose OLAP
  • Moose Streaming
  • Moose Workflows
  • Moose APIs & Web Apps
Deployment & Lifecycle
  • Moose Migrate
  • Moose Deploy
Reference
  • API Reference
  • Data Types
  • Table Engines
    • MergeTree
    • ReplacingMergeTree
    • AggregatingMergeTree
    • SummingMergeTree
    • Replicated Engines
  • CLI
  • Configuration
  • Observability Metrics
  • Help
  • Release Notes
Contribution
  • Documentation
  • Framework