We value your privacy

This site uses cookies to improve your browsing experience, analyze site traffic, and show personalized content. See our Privacy Policy.

  1. MooseStack
  2. Table Engines
  3. SummingMergeTree

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

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"]});

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

On this page

When to UseUsageConfiguration OptionsExample: Choosing Columns to SumSee Also
FiveonefourFiveonefour
Fiveonefour Docs
MooseStackHostingTemplatesGuides
Release Notes
Source531
  • Overview
Build a New App
  • 5 Minute Quickstart
  • Browse Templates
  • Existing ClickHouse
Add to Existing App
  • Next.js
  • Fastify
Fundamentals
  • Moose Runtime
  • MooseDev MCP
  • Language Server
  • Data Modeling
Moose Modules
  • Moose OLAP
  • Moose Streaming
  • Moose Workflows
  • Moose APIs & Web Apps
Deployment & Lifecycle
  • Moose Dev
  • 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
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"]});
const metrics = new OlapTable<DailyMetrics>("daily_metrics", {  engine: ClickHouseEngines.SummingMergeTree,  orderByFields: ["date", "page"],  columns: ["views", "clicks"]  // Only sum these columns});