Tutorials

GROUP BY & HAVING

One special use of GROUP BY is to associate an aggregate function (especially COUNT; counting the number of rows in each group) with groups of rows. First, assume that the Antiques table has the Price column, and each row has a value for that column. We want to see the price of the most expensive item bought by each owner. We have to tell SQL to group each owner's purchases, and tell us the maximum purchase price:

SELECT BUYERID, MAX(PRICE)
FROM ANTIQUES
GROUP BY BUYERID;

Now, say we only want to see the maximum purchase price if the purchase is over $1000, so we use the HAVING clause:

SELECT BUYERID, MAX(PRICE)
FROM ANTIQUES
GROUP BY BUYERID
HAVING PRICE > 1000;

SQL
Database Indexes
Create Table
SQL Select
SQL Alias
SQL Insert
SQL Update
SQL Delete
SQL Alter
SQL group by & having
SQL Subqueries
SQL Exists, All & Any
SQL Joins
SQL Aggregate Functions
SQL Drop
SQL Union & All
Constraints
Create Views
SQL Transactions