# SQL STDEVP Function

The SQL STDEVP Function is an Aggregate Function that calculates the Standard Deviation for the population of total records (or rows) selected by the SELECT Statement. The syntax of the SQL Server STDEVP Function is

```SELECT STDEVP ([Column_Name])
FROM [Source]```

## SQL STDEVP Function Formulas

SQL STDEVP Function works on Numeric values, and it ignores Nulls. The math formulas of the SQL Server STDEVP Function is

```--Calculating the Mean or Average
Mean = Sum of each individual/Total number of items

--Calculating the Statistical Variance
Variance = ((OriginalValue – Mean)² + (OriginalValue – Mean)² +.... ) / Total number of items

--Calculating Standard Deviation
Standard Deviation = Square root (Variance)```

### SQL STDEVP Function Syntax

The syntax of the STDEVP Function is

```SELECT STDEVP ([Column_Name])
FROM [Source]```

For this SQL Server STDDEVP function to calculate the Standard Deviation for population example, we use the below-shown data

## SQL STDEVP Example

The STDEVP function returns the Standard Deviation for the population of a total number of records present in the specified column. For example, the following STDEVP query calculates the Standard Deviation for the population of total records present in the [Yearly Income] column.

```-- Example for STDEVP Function
SELECT STDEVP ([YearlyIncome]) AS [Standard Deviation]

FROM [Customer]```

## SQL STDEVP Function with Group By Clause

We use the STDEV Function to calculate the Standard Deviation of products present in each group using the GROUP BY Clause. Let us see the Aggregate Function Example

```-- Example for STDEVP Function
SELECT [Occupation]
,STDEVP ([YearlyIncome]) AS [Standard Deviation]
FROM [Customer]
GROUP BY [Occupation]```

Above SQL Select Statement Query will find the Customers associated with the particular Department and calculates their Standard Deviation for the population.

Let us take the Skilled Manual profession and show you the output.

```--Calculating Mean
Mean = (60000 + 80000) / 2
Mean = 70000

--Calculating Variance
Variance = ( (60000 - 70000) + (80000 - 70000) ) / 2
Variance = 100000000

--Calculating Standard Deviation
Standard Deviation = SQRT (Variance)
Standard Deviation = SQRT (100000000)
It means, Standard Deviation for Population = 10000```

## STDEVP Function in Having Clause

The following STDEVP query groups the Customers by their Occupation and then calculates the Standard Deviation for the population of each group. Next, use the SQL HAVING Clause to return rows whose aggregated data is greater than 0

```-- Example for STDEVP Function
SELECT [Occupation]
,STDEVP ([YearlyIncome]) AS [Standard Deviation]
FROM [Customer]
GROUP BY [Occupation]
HAVING STDEVP ([YearlyIncome]) > 0```

The below code checks whether the Standard Deviation for the population of Yearly income for each Group is greater than 0 or not. If this is true, the corresponding records will display.

`HAVING STDEVP ([YearlyIncome]) > 0`

## SQL STDEVP Function in Subquery

When we are retrieving the data, In some cases, we check for the conditions against the aggregated data. In these conditions, we have to use Subquery in SQL Where Clause.

For example, the following STDEVP query returns Customers whose Income is five times greater than the yearly incomes Standard Deviation for the population.

```-- Example for STDEVP Function
SELECT [FirstName]
,[LastName]
,[YearlyIncome]
,[Education]
,[Occupation]
FROM [Customer]
WHERE [YearlyIncome] >
(SELECT STDEVP([YearlyIncome] * 6) FROM [Customer])```

From the first example, you can observe that the Standard Deviation of a Yearly Income is 11874. So above query will display all the customers from the Customers table whose yearly income is greater than 71244 approximately