# Functions

Functions calculate values or provide rows to a query. Their role determines how they are called:

| Family    | Role                                                                 |
| --------- | -------------------------------------------------------------------- |
| Scalar    | Calculate one value from expressions in the current row.             |
| Aggregate | Calculate one result from several input rows or each GROUP BY group. |
| Table     | Provide rows in a FROM clause.                                       |
| Window    | Calculate a value using related rows without collapsing the input.   |

Names ignore ASCII case; use each documented snake_case spelling. Argument counts, accepted types, NULL behavior and errors are defined per function.

The server exposes descriptive metadata in [`system.functions`](https://coordinatordb.com/docs/reference/system-tables/functions), including before a database is selected. That catalog is descriptive, so a missing legacy entry is not proof that a function is unavailable.

## Reference

* [Aggregate functions](https://coordinatordb.com/docs/reference/functions/aggregate-functions)
* [Scalar functions](https://coordinatordb.com/docs/reference/functions/regular-functions/overview)
* [Table functions](https://coordinatordb.com/docs/reference/functions/table-functions)
* [Window functions](https://coordinatordb.com/docs/reference/functions/window-functions)
