Summaries and NULL Values
Problem
You’re
summarizing a set of values that may include NULL
values and you need to know how to
interpret the results.
Solution
Understand how aggregate functions handle NULL
values.
Discussion
Most aggregate functions ignore NULL
values. Suppose that you have a table
expt
that records experimental
results for subjects who are to be given four tests each and that
lists the test score as NULL
for
those tests that have not yet been administered:
mysql>SELECT subject, test, score FROM expt ORDER BY subject, test;
+---------+------+-------+
| subject | test | score |
+---------+------+-------+
| Jane | A | 47 |
| Jane | B | 50 |
| Jane | C | NULL |
| Jane | D | NULL |
| Marvin | A | 52 |
| Marvin | B | 45 |
| Marvin | C | 53 |
| Marvin | D | NULL |
+---------+------+-------+
By using a GROUP
BY
clause to arrange the rows by subject name, the number of
tests taken by each subject, as well as the total, average, lowest,
and highest scores can be calculated like this:
mysql>SELECT subject,
->COUNT(score) AS n,
->SUM(score) AS total,
->AVG(score) AS average,
->MIN(score) AS lowest,
->MAX(score) AS highest
->FROM expt GROUP BY subject;
+---------+---+-------+---------+--------+---------+ | subject | n | total | average | lowest | highest | +---------+---+-------+---------+--------+---------+ | Jane | 2 | 97 | 48.5000 | 47 | 50 | | Marvin | 3 | 150 | 50.0000 | 45 | 53 | +---------+---+-------+---------+--------+---------+
You can see from the results in the column ...
Get MySQL Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.