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 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 score 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 results in the column labeled ...
Get MySQL Cookbook 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.