Computed Tables

A computed table is the result of a SQL query, saved as a table in its own right.

It is how you keep a derived view — a join, an aggregate, a filtered extract — as something you can open, export and import, rather than re-running a query every time.

How one is made

Computed tables are created by asking an AI assistant through the MCP server to save a query's result. There is no SQL editor in the app.

One rule the query must satisfy: every output column needs an explicit alias. A column with no name of its own is refused rather than guessed at.

Where they live

A computed table has no parent model. It belongs to you and appears in your overview, outside any model.

To use one in a model, import it. The import is a reference rather than a copy — the data exists once, and the in-model table is a read-only view onto it.

Computed tables are owner-only. Importing one into a model is the single thing anyone else can do with it.

Refreshing

A computed table does not update itself. When its source tables move on, it shows as out of date, and Refresh from current versions re-runs the query.

Three things about refresh:

  • It is owner-only, and done from the overview rather than from inside a model.
  • It replaces the data in place.
  • It fails if the query's output types have changed rather than migrating the table to the new shape. A refresh that quietly changed a column's type would break everything reading it downstream, so it stops and tells you instead.

No versions

Computed tables are unversioned. A refresh replaces the contents, and there is no history behind it.

That means:

  • No checkpoints and no aliases.
  • No going back to what the query returned last week.
  • Nothing to compare against.

If you need the history, the source tables have it — a computed table is a derived view, and the versioning lives with the data it derives from.

What else they cannot do

  • They cannot hold attachments.
  • They cannot be edited cell by cell. The query is the definition; change the query, not the result.

Deleting

Delete computed table removes it. An import of it in someone's model stops resolving, so check what depends on it first.