Berserk Docs
Tabular OperatorsAggregate Operators

summarize

Groups rows and calculates aggregate values over each group.

Groups rows and calculates aggregate values over each group. Without a by clause, aggregates all rows into a single result.

Syntax

summarize aggregation, ...

Aggregate all rows

Parameters

NameDescription
aggregationAggregation function (count(), sum(), avg(), etc.)

Syntax

summarize aggregation, ... by column, ...

Aggregate grouped by columns

Parameters

NameDescription
aggregationAggregation function (count(), sum(), avg(), etc.)
columnColumn or expression to group by

Examples

Example 1

datatable(clan:string, warrior:string, battles:long)[
  "Ragnarsson", "Bjorn", 15,
  "Ragnarsson", "Ivar", 22,
  "Ragnarsson", "Sigurd", 8,
  "Lothbrok", "Ragnar", 30,
  "Lothbrok", "Lagertha", 18,
  "Fairhair", "Harald", 25,
  "Fairhair", "Halfdan", 12
]
| summarize total_battles = sum(battles), warriors = count(), best = max(battles) by clan
clan (string)total_battles (long)warriors (long)best (long)
Fairhair37225
Lothbrok48230
Ragnarsson45322

Example 2

datatable(weapon:string, warrior:string)[
  "axe", "Ragnar",
  "sword", "Bjorn",
  "axe", "Ivar",
  "spear", "Lagertha",
  "axe", "Floki",
  "sword", "Harald"
]
| summarize count() by weapon
weapon (string)count_ (long)
axe3
spear1
sword2

Example 3

datatable(region:string, raid:string, silver:long)[
  "England", "Lindisfarne", 500,
  "Francia", "Paris", 7000,
  "England", "York", 1200,
  "Francia", "Rouen", 3000,
  "England", "Winchester", 300
]
| summarize total_silver = sum(silver), raids = count() by region
region (string)total_silver (long)raids (long)
England20003
Francia100002

Example 4

datatable(warrior:string, voyages:long)[
  "Ragnar", 42,
  "Bjorn", 31,
  "Ivar", 35,
  "Lagertha", 28,
  "Harald", 25
]
| summarize avg(voyages), max(voyages), min(voyages)
avg_voyages (real)max_voyages (long)min_voyages (long)
32.24225

On this page