> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# min()

<span id="atoti.agg.min" />

> @overload<br />
> atoti.agg.min(<br />
>     *operand*: LevelOrVariableColumnConvertible,<br />
>     /,<br />
> ) → MeasureDefinition

> @overload<br />
> atoti.agg.min(<br />
>     *operand*: VariableMeasureConvertible,<br />
>     /,<br />
>     \*,<br />
>     *scope*: [CumulativeScope](./atoti.scope.CumulativeScope#atoti.CumulativeScope) | [SiblingsScope](./atoti.scope.SiblingsScope#atoti.SiblingsScope) | [OriginScope](./atoti.scope.OriginScope#atoti.OriginScope),<br />
> ) → MeasureDefinition

Return a measure equal to the minimum of the passed measure across the specified scope.

### Parameters

<h4 id="atoti.agg.min.operand">
  *operand*
</h4>

The measure or table column to aggregate.

<h4 id="atoti.agg.min.scope">
  *scope*
</h4>

The [`aggregation scope`](./atoti.scope#module-atoti.scope).

***

```pycon theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
>>> df = pd.DataFrame(
...     columns=["id", "Quantity", "Price", "Other"],
...     data=[
...         ("a1", 100, 12.5, 1),
...         ("a2", 10, 43, 2),
...         ("a3", 1000, 25.9, 2),
...     ],
... )
>>> table = session.read_pandas(
...     df,
...     keys=["id"],
...     table_name="Product",
... )
>>> table.head().sort_index()
    Quantity  Price  Other
id
a1       100   12.5      1
a2        10   43.0      2
a3      1000   25.9      2
>>> cube = session.create_cube(table)
>>> m = cube.measures
    >>> m["Minimum Price"] = tt.agg.min(table["Price"])
    >>> cube.query(m["Minimum Price"])
      Minimum Price
    0         12.50
```
