SQL Standard Deviation
A single number that answers: how spread out are these values around their average?
What & Why
Standard deviation measures how far, on average, values sit from the mean. A small standard deviation means values cluster tightly around the average; a large one means they're scattered widely.
Two datasets can share the exact same average while looking completely different — standard deviation is what tells them apart.
See How It Works
BUSINESS QUESTION
Measure campaign-spend variability within each marketing channel.
| id | name | channel | spend | start_date | end_date | status | target_segment |
|---|---|---|---|---|---|---|---|
| 1 | Spring Launch | google_ads | 55000.00 | 2024-01-15 | 2024-03-31 | active | smb |
| 2 | Retention Webinar | 45000.00 | 2024-02-10 | 2024-04-15 | active | enterprise | |
| 3 | Finance Retargeting | 50000.00 | 2024-03-12 | 2024-05-31 | active | enterprise | |
| 4 | Enterprise Search | google_ads | 60000.00 | 2024-04-01 | 2024-06-30 | active | enterprise |
EXAMPLE QUERY
SELECT
channel,
COUNT(*) AS campaigns,
ROUND(AVG(spend), 2) AS avg_spend,
ROUND(STDDEV_SAMP(spend), 2) AS sample_stddev_spend
FROM marketing.campaigns
GROUP BY channel
ORDER BY sample_stddev_spend DESC NULLS LAST, channel;RESULT — sample spend deviation
| channel | campaigns | avg_spend | sample_stddev_spend |
|---|---|---|---|
| google_ads | 2 | 57500.00 | 3535.53 |
| 1 | 45000.00 | NULL | |
| 1 | 50000.00 | NULL |
A sample standard deviation needs at least two rows, so only google_ads has a value.
This lesson's practice is part of Pro.
Sign up free to try it on a real business scenario