Dimensions

A dimension is an ordered list of members. A slice is one coordinate from each of them.

Members

A dimension is a finite, ordered list of members. A member is one value of the dimension, such as 2024-03 or "pro".

There are two kinds of dimension, and they differ only in where the members come from. A date dimension's members are the periods a calendar generates. A column dimension's members are the values a column of the data holds, so they are known only after the data is read.

Slices

A slice is one coordinate from each of the model's dimensions other than the one it steps along. A model over plan and region has one slice for each pair.

dimension  plan,    from invoices.plan
dimension  region,  from invoices.region

Rows whose column holds nothing are not dropped. Nothing is a member like any other: it sorts first and is shown as (none).

Binding a dimension

A model uses a dimension by naming, in one table's configuration, the column that dimension reads. That table is the dimension's source, and every other table that names a column for it joins to those members and adds none of its own. Two models over the same table may bind different dimensions.