This time I will take the opportunity to talk about how to calculate the VARIANCE functions. I recently blogged about the COVARIANCE functions and since also VARIANCE is missing in SQL Server, I wanted to give it a shot. The general formula for calculating the variance value for population is

As you can see in it’s original format, the function is a two-pass operation. First calculate the average value and the subtract that average value from each row in the current dataset.

I don’t find that good in terms of performance, so I figured out how to rewrite the function to be a one pass operation.

Can we apply the same thinking again when calculating the variance value for sample? Yes, we can.

Now we have a one pass operation and we can test the formula like this