> For the complete documentation index, see [llms.txt](https://docs.snowddl.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.snowddl.com/basic/yaml-configs/aggregation-policy.md).

# AGGREGATION POLICY

Config path: `/<database>/<schema>/aggregation_policy/<name>.yaml`

Example:

```yaml
body: |-
  CASE WHEN IS_ROLE_IN_SESSION('SYSADMIN') THEN NO_AGGREGATION_CONSTRAINT()
       ELSE AGGREGATION_CONSTRAINT(MIN_ROW_COUNT => 5, MIN_ENTITY_COUNT => 2)
  END

references:
  - object_type: TABLE
    object_name: test_table_1
    columns: [id]

  - object_type: VIEW
    object_name: test_view_1
    columns: [id]

comment: my aggregation policy
```

## Schema

* <mark style="background-color:red;">**body**</mark> (str) - policy SQL expression
* ~~**references**~~ (dict)
  * **object\_type** (str) - reference object type (e.g. `TABLE`, `VIEW`)
  * **object\_name** (ident) - reference object name
  * **columns** (list)
    * *{items}* (ident) - optional reference column names defining "entity"
* **comment** (str)

## Usage notes

1. Management of aggregation policies requires active warehouse due to unavoidable [POLICY\_REFERENCES](https://docs.snowflake.com/en/sql-reference/functions/policy_references.html) table function calls.
2. Make sure to allow aggregation for role `SYSADMIN`, especially if aggregation policy is being applied to views. Otherwise SnowDDL will have to re-create VIEW on every run due to inability to verify column data types.\
   \
   Example of check: `CASE WHEN IS_ROLE_IN_SESSION('SYSADMIN') THEN NO_AGGREGATION_CONSTRAINT() ELSE ... END`
3. Parameter `references` is deprecated since `0.33.0`. Use policy reference parameters directly in [TABLE](/basic/yaml-configs/table.md) or [VIEW](/basic/yaml-configs/view.md) configs instead.

## Links

* [CREATE AGGREGATION POLICY](https://docs.snowflake.com/en/sql-reference/sql/create-aggregation-policy)
* [SHOW AGGREGATION POLICIES](https://docs.snowflake.com/en/sql-reference/sql/show-aggregation-policies)
* [DESC AGGREGATION POLICY](https://docs.snowflake.com/en/sql-reference/sql/desc-aggregation-policy)
* [Parser & JSON Schema (GitHub)](https://github.com/littleK0i/SnowDDL/blob/master/snowddl/parser/aggregation_policy.py)
