> For the complete documentation index, see [llms.txt](https://docs.rasgoml.com/rasgo-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rasgoml.com/rasgo-docs/rasgo-0.1/all-transforms/conditional_agg.md).

# Conditional Agg

Pass in a list of filter rules, and aggregate rows that match.

If multiple rules are passed, they are combined and aggregated both together and separately.

## Parameters

| Name        | Type        | Description                                                           | Is Optional |
| ----------- | ----------- | --------------------------------------------------------------------- | ----------- |
| rules       | value\_list | List of filter rules to use                                           |             |
| agg\_column | column      | Column to aggregate                                                   |             |
| agg         | agg         | Method to use when aggregating the agg\_column                        |             |
| distinct    | boolean     | When aggregating the agg\_column, use TRUE to qualify with a DISTINCT |             |

## Example

```python
customer = rasgo.get.dataset(55)

rules = [
  "FIRSTNAME LIKE 'J%'",
  "BIRTHDATE < '1970-01-01'",
  "ENGLISHEDUCATION = 'Bachelors'",
  "MARITALSTATUS = 'M'",
  "GENDER='F'"]

ds2 = customer.conditional_agg(rules=rules,
                              agg_column='CUSTOMERKEY',
                              agg='COUNT',
                              distinct=True)
ds2.preview()
```

## Source Code

{% embed url="<https://github.com/rasgointelligence/RasgoTransforms/blob/main/rasgotransforms/rasgotransforms/transforms/conditional_agg/conditional_agg.sql>" %}
