# Summary of Functions¶

Snowflake supports most of the standard functions defined in SQL:1999, as well as parts of the SQL:2003 analytic extensions.

## Scalar Functions¶

A scalar function is a function that returns one value per invocation; in most cases, you can think of this as returning one value per row. This contrasts with Aggregate Functions, which return one value per group of rows.

For a complete list of scalar function categories, see Scalar Functions.

## Aggregate Functions¶

Snowflake supports aggregate functions to operate on values across rows to perform mathematical calculations such as sum, average, counting, minimum/maximum values, standard deviation, and estimation, as well as some non-mathematical operations.

For a complete list, see Aggregate Functions.

## Window Functions¶

Window functions are aggregate functions that can operate on a subset of rows within the set of input rows.

## Table Functions¶

Snowflake supports many Table Functions to obtain information about Snowflake features and services.

For a complete summary, see List of System-Defined Table Functions.

## System Functions¶

For a complete list of system functions, see System Functions.

## User-defined Functions (UDFs)¶

In addition to the system-defined functions provided by Snowflake, users can create functions. Snowflake supports the following types of UDFs:

## External Functions¶

Snowflake also supports Writing External Functions, which are stored and executed outside Snowflake.