---
title: "What is a UDA?"
description: "A UDA, a user-defined aggregate, reduces many rows — for example the frames of one clip — into a summary with logic you write."
url: "https://pixeltable.com/learn/what-is-a-uda"
updated: "2026-09-29"
vertical: "Orchestration"
doc: "https://docs.pixeltable.com/datastore/computed-columns"
---

# What is a UDA?

A UDA, a user-defined aggregate, reduces many rows — for example the frames of one clip — into a summary with logic you write.

Updated: 2026-09-29
Part of [What is a UDF?](https://pixeltable.com/learn/what-is-a-udf).

## On this page

- [How it works](https://pixeltable.com/learn/what-is-a-uda#how-it-works)
- [What it is not](https://pixeltable.com/learn/what-is-a-uda#what-it-is-not)
- [Comparison](https://pixeltable.com/learn/what-is-a-uda#comparison)
- [Where Pixeltable fits](https://pixeltable.com/learn/what-is-a-uda#where-pixeltable-fits)
- [Questions](https://pixeltable.com/learn/what-is-a-uda#questions)

## How it works {#how-it-works}


- Group rows, often the children of one parent.
- The aggregate function folds them.
- The summary is stored or returned with the group.

## What it is not {#what-it-is-not}

It is not AVG() on numbers, and it is not concatenating values in the application after a full download.

## UDA: this, and the thing it is confused with {#comparison}

|  | This | Not this |
| --- | --- | --- |
| Input | Many rows | One row |
| Logic | Yours | Only built-in SQL aggregates |
| Example | Frames of one swing | The mean of a float column |

## Where Pixeltable fits {#where-pixeltable-fits}

Pixeltable UDAs run over groups such as the frames of one video, and the result can feed another column.

## Questions {#questions}

### How does UDA work? {#faq-1}

Group rows, often the children of one parent. The aggregate function folds them. The summary is stored or returned with the group.

### What is UDA often confused with? {#faq-2}

It is not AVG() on numbers, and it is not concatenating values in the application after a full download.

## In the blog

- [One Swing, Many Frames: How We Aggregated Video into a Summary with Pixeltable](https://pixeltable.com/blog/one-swing-many-frames-pixelgolf-uda-aggregation)
- [Beyond AVG(): Building Custom Aggregation Functions for AI Workflows with Pixeltable UDA](https://pixeltable.com/blog/beyond-avg-custom-aggregations-uda)

## Related

- [Documentation](https://docs.pixeltable.com/datastore/computed-columns)
- [Beyond AVG(): Building Custom Aggregation Functions for AI Workflows with Pixeltable UDA](https://pixeltable.com/blog/beyond-avg-custom-aggregations-uda)
- [One Swing, Many Frames: How We Aggregated Video into a Summary with Pixeltable](https://pixeltable.com/blog/one-swing-many-frames-pixelgolf-uda-aggregation)
