atoti_query.query_hierarchy module#

class atoti_query.QueryHierarchy#
property dimension: str#

Name of the dimension of the hierarchy.

A dimension is a logical group of attributes (e.g. Geography). It can be thought of as a folder containing hierarchies.

isin(*member_paths)#

Return a condition to check that the hierarchy is on one of the given members.

Considering hierarchy_1 containing level_1 and level_2, hierarchy_1.isin((a,), (b, c)) is equivalent to (level_1 == a) | ((level_1 == b) & (level_2 == c)).

Parameters:

member_paths (tuple[ConstantValue, ...]) – One or more member paths expressed as tuples on which the hierarchy should be. Each element in a tuple corresponds to a level of the hierarchy, from the shallowest to the deepest.

Return type:

Condition[HierarchyIdentifier, Literal[‘isin’], Constant, None]

Example

>>> df = pd.DataFrame(
...     columns=["Country", "City", "Price"],
...     data=[
...         ("Germany", "Berlin", 150.0),
...         ("Germany", "Hamburg", 120.0),
...         ("United Kingdom", "London", 240.0),
...         ("United States", "New York", 270.0),
...         ("France", "Paris", 200.0),
...     ],
... )
>>> table = session.read_pandas(
...     df, keys=["Country", "City"], table_name="isin example"
... )
>>> cube = session.create_cube(table)
>>> h, l, m = cube.hierarchies, cube.levels, cube.measures
>>> h["Geography"] = [l["Country"], l["City"]]
>>> m["Price.SUM in Germany and Paris"] = tt.filter(
...     m["Price.SUM"],
...     h["Geography"].isin(("Germany",), ("France", "Paris")),
... )
>>> cube.query(
...     m["Price.SUM"],
...     m["Price.SUM in Germany and Paris"],
...     levels=[l["Geography", "City"]],
... )
                        Price.SUM Price.SUM in Germany and Paris
Country        City
France         Paris       200.00                         200.00
Germany        Berlin      150.00                         150.00
               Hamburg     120.00                         120.00
United Kingdom London      240.00
United States  New York    270.00
property levels: Mapping[str, QueryLevel]#

Levels of the hierarchy.

property name: str#

Name of the hierarchy.

property slicing: bool#

Whether the hierarchy is slicing or not.