Example: Aggregate Functions

Restriction: This topic applies to Windows environments only.

All of the aggregate functions are applied only to the set of records retrieved by the SELECT command. Examples of each of the functions are given below.

To find the number of "CAM" parts in the table, enter:

SELECT COUNT(pno) FROM part
WHERE pname = "CAM"

The result is 2. To find the total quantity of P2 supplied, enter:

SELECT SUM(qty) FROM partsupp
WHERE pno = "P2"

The result is 1000. To find the weight of the heaviest part, enter:

SELECT MAX(weight) FROM part

More than one function can be used in a command, as in the query:

SELECT COUNT(pno), AVG(weight), MIN(weight),
  MAX(weight), XSTDDEV(weight)
FROM part

Commands containing both an aggregate function and a simple field-name are not allowed unless the result is grouped by the simple field. For example, the following query is illegal:

SELECT SUM(qty), pno
FROM partsupp

To correct it, add a GROUP BY clause, as shown below:

SELECT SUM(qty), pno
  FROM partsupp
  GROUP BY pno

The next example finds the average weight, and number of parts for every part color that has two or more parts, and displays them in color order.

SELECT color, AVG(weight), COUNT(*)
  FROM part
  GROUP BY color
    HAVING COUNT(*) >= 2
  ORDER BY color

The result is:

color avg(wt) count(*)
BLUE 12 2
RED 15 3