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 ...
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