SQL Reference

Chapter 2 | Supported standards 11
GROUP BY clause
The GROUP BY clause specifies the names of one or more fields by which the returned values
should be grouped. This clause is used to return a set of aggregate values. It has the following
format:
GROUP BY columns
The scope of the GROUP BY clause is the table expression in the FROM clause. As a result, the
column expressions specified by columns must be from the tables specified in the FROM clause.
A column expression can be one or more field names of the database table separated by commas.
Example
The following example sums the salaries in each department.
SELECT dept_id, SUM (salary) FROM emp GROUP BY dept_id
This statement returns one row for each distinct department ID. Each row contains the department
ID and the sum of the salaries of the employees in the department.
HAVING clause
The HAVING clause enables you to specify conditions for groups of records (for example, display
only the departments that have salaries totaling more than $200,000). It has the following format:
HAVING expr1 rel_operator expr2
expr1 and expr2 can be field names, constant values, or expressions. These expressions do
not have to match a column expression in the SELECT clause.
rel_operator is the relational operator that links the two expressions.
Example
The following example returns only the departments whose sums of salaries are greater than
$200,000:
SELECT dept_id, SUM (salary) FROM emp
GROUP BY dept_id HAVING SUM (salary) > 200000