Per-Group Descriptive Statistics
Problem
You want to produce descriptive statistics for each subgroup of a set of observations.
Solution
Use aggregate functions, but employ a
GROUP
BY clause to arrange observations into the
appropriate groups.
Discussion
Calculating Descriptive Statistics shows how to
compute descriptive statistics for the entire set of scores in the
testscore table. To be more
specific, you can use GROUPBY to divide the observations into
groups and calculate statistics for each of them. For example, the
subjects in the testscore table are
listed by age and sex, so it’s possible to calculate similar
statistics by age or sex (or both) by application of appropriate
GROUPBY clauses.
Here’s how to calculate by age:
mysql>SELECT age, COUNT(score) AS n,->SUM(score) AS sum,->MIN(score) AS minimum,->MAX(score) AS maximum,->AVG(score) AS mean,->STDDEV_SAMP(score) AS 'std. dev.',->VAR_SAMP(score) AS 'variance'->FROM testscore->GROUP BY age;+-----+---+------+---------+---------+--------+-----------+----------+ | age | n | sum | minimum | maximum | mean | std. dev. | variance | +-----+---+------+---------+---------+--------+-----------+----------+ | 5 | 4 | 22 | 4 | 7 | 5.5000 | 1.2910 | 1.6667 | | 6 | 4 | 27 | 4 | 9 | 6.7500 | 2.2174 | 4.9167 | | 7 | 4 | 30 | 6 | 9 | 7.5000 | 1.2910 | 1.6667 | | 8 | 4 | 32 | 6 | 10 | 8.0000 | 1.8257 | 3.3333 | | 9 | 4 | 35 | 7 | 10 | 8.7500 | 1.2583 | 1.5833 | +-----+---+------+---------+---------+--------+-----------+----------+ ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access