Skip to content
Jip Claassens edited this page Jul 7, 2026 · 15 revisions

Aggregation functions modus

syntax

  • modus(a)
  • modus(a, relation)

definition

description

An attribute might contain multiple most occurring non null values. In these cases, the modus function results in the lowest most occurring non null value, independent from the sequence of the values in the attribute, see also example 2.

applies to

  • attribute a with uint2, uint4, uint8, uint16, uint32 or bool value type
  • relation with value type of the group CanBeDomainUnit

conditions

  1. The values unit of the resulting data item should match with regard to value type and metric with the values unit of attribute a.
  2. The domain of argument a and relation must match.

performance

  • Without relation: O(n) where n = number of elements in the domain of a. Builds frequency count for each value.
  • With relation: O(n) where n = number of elements in the domain of a. Builds frequency count per group.
  • Memory usage depends on the cardinality of the values unit.

example 1

parameter<uint32> modusLifeStyleCode                      := modus(City/LifeStyleCode); result = 1
attribute<uint32> modusLifeStyleCodeRegion (RegionDomain) := modus(City/LifeStyleCode, City/Region_rel);
City/LifeStyleCode City/Region_rel
2 0
0 1
1 2
0 1
1 3
1 null
null 3

domain City, nr of rows = 7

modusLifeStyleCodeRegion
2
0
1
1
null

domain Region, nr of rows = 5

example 2

parameter<uint32> modusSeqA := modus(City/SeqA); result = 1
parameter<uint32> modusSeqB := modus(City/SeqB); result = 1
parameter<uint32> modusSeqC := modus(City/SeqC); result = 1
parameter<uint32> modusSeqD := modus(City/SeqD); result = 1
City/SeqA City/SeqB City/SeqC City/SeqD
1 2 2 3
1 2 1 2
2 1 2 3
2 1 1 1
3 3 2 2
null null 1 1
null null null null

domain City, nr of rows = 7

The attributes SeqA, SeqB, SeqC and SeqD all contain multiple most occurring non null values, in different sequences. In all cases the modus function results in the lowest most occurring non null value: 1.

see also

Clone this wiki locally