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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.firebolt.io/feedback

```json
{
  "path": "/reference-sql/functions-reference/aggregation/stddev-pop",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

> Reference material for STDDEV_POP

# STDDEV_POP

Computes the population standard deviation of all non-`NULL` numeric values produced by an expression. The population standard deviation shows how spread out the values in a population are, by measuring the average distance of each value from the population's mean.
For information about the sample standard deviation, which estimates the spread of values across sample rather than the full population, see [STDDEV\_SAMP](/reference-sql/functions-reference/aggregation/stddev-samp).

## Syntax

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
STDDEV_POP(<expression>) [FILTER ([WHERE] <condition>)]
```

## Parameters

| Parameter      | Description                                                                                      | Supported input types      |
| :------------- | :----------------------------------------------------------------------------------------------- | :------------------------- |
| `<expression>` | An expression producing numeric values for which to calculate the population standard deviation. | `REAL`, `DOUBLE PRECISION` |
| `<condition>`  | An optional boolean expression to filter rows used in aggregation                                | `BOOL`                     |

## Return Type

`STDDEV_POP` returns a result of type `DOUBLE PRECISION`.

### Special cases

* If there are no non-`NULL` input values, the result is `NULL`.
* If the input contains an `Inf` or `NaN` value, the result will be `NaN`.

## Example

The following code creates an `exams` table with a `grade` column of type `DOUBLE PRECISION`, and inserts five grade values into it:

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
CREATE TABLE exams (grade DOUBLE PRECISION);
INSERT INTO exams VALUES (4.0), (3.7), (3.3), (2.7), (2.7);
```

The following code calculates the population standard deviation of the grade values from the `exams` table, rounds the result to three decimal places, and returns it as `stddev`:

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
SELECT ROUND(STDDEV_POP(grade), 3) as stddev from exams;
```

**Returns**
The previous code returns the following result:

| stddev (DOUBLE PRECISION) |
| :------------------------ |
| 0.523                     |
