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

# Transformations

> Group, aggregate, filter, and sort your dataset results without writing more SQL.

**Transformations** are a no-code layer that operates on your published dataset results. Instead of editing the SQL, you point and click to reshape the data, group, aggregate, filter, sort, hide columns, and limit rows. Transformations run in-browser using DuckDB, so they are instant and don't touch your database.

## What you can do

### Group by

Group rows by one or more columns to create aggregated views. When you enable grouping on a column, other columns need an aggregation function.

### Aggregate

Apply aggregation functions to columns. Available operations depend on the column type:

| Category      | Operations                                                                       |
| ------------- | -------------------------------------------------------------------------------- |
| **All types** | Count, Count values, Count empty, Count unique, Percent empty, Percent non-empty |
| **Numeric**   | Sum, Average, Median, Min, Max, Variance                                         |
| **Boolean**   | Count true, Count false, Percent true, Percent false                             |
| **Text**      | First, Last, Concat                                                              |
| **Date/time** | Earliest, Latest                                                                 |

### Filter

Apply conditions to narrow the rows displayed. Filters support a wide range of modes:

| Category    | Modes                                                                                     |
| ----------- | ----------------------------------------------------------------------------------------- |
| **Text**    | Matches, Contains, Not contains, Starts with, Ends with, Empty, Not empty, In, Not in     |
| **Numeric** | Equal, Not equal, Greater than, Greater or equal, Less than, Less or equal, Between       |
| **Boolean** | Is true, Is false                                                                         |
| **Date**    | Equal, Between, Relative (previous/current/next N hours/days/weeks/months/quarters/years) |

Multiple filters can be combined with **AND** or **OR** logic.

### Sort

Sort by any column in **ascending** or **descending** order. You can stack multiple sort criteria, they apply in priority order.

### Hide columns

Toggle column visibility to hide columns you don't need in the current visualization. Hidden columns are still available if you re-enable them later.

### Row limit

Cap the number of rows returned. Useful for top-N views or limiting large datasets.

## Where transformations are used

* **Dataset results panel**: shape how you see your data in the table while exploring a dataset.
* **Charts on dashboards**: each chart has its own transformation configuration, so the same dataset can power multiple charts with different groupings and filters.
* **Chart-specific transformations**: graphs can have an additional transformation layer for shaping data specifically for the visualization. See [Chart transformations](/charts/chart-transform).

## Transformations vs. SQL

Transformations don't replace SQL, they complement it. Use SQL for complex joins, CTEs, and the heavy lifting that needs to run on your database. Use transformations for the "last mile" shaping: grouping, filtering, and sorting the already-published results.

Because transformations run in-browser on DuckDB, changes are instant and don't consume database resources.

## Related

* [Datasets overview](/datasets/overview)
* [Chart transformations](/charts/chart-transform)
* [Dashboard filters](/boards/filters)
