November 2006
Intermediate to advanced
977 pages
30h 42m
English
You’re
summarizing a set of values that may include NULL values and you need to know how to
interpret the results.
Understand how aggregate functions handle NULL values.
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 ...