Understanding Data Grouping
In the previous chapter, you learned that the SQL aggregate functions can be used to summarize data. This enables you to count rows, calculate sums and averages, and obtain high and low values without having to retrieve all the data.
All the calculations thus far were performed on all the data in a table or on data that matched a specific WHERE clause. As a reminder, the following example returns the number of products offered by vendor 1003:
SELECT COUNT(*) AS num_prods FROM products WHERE vend_id = 1003;
+-----------+ | num_prods | +-----------+ | 7 | +-----------+
But what if you want to return the number of products offered by each vendor? Or products offered by vendors who offer a single product, or only those who offer more than 10 products?