SQL basics : use of group by and having
The purpose of this article is to record my understanding of the basic usage of GROUP BY and HAVING in SQL.
Group by
- Used with aggregate function
- If there are multiple different numbers in a field that need to be calculated, they can be seen as a group
- Use
whereto filter specific field, andhavingfor specific group(s).havingalways goes aftergroup by
Example
The total amount of all data for the same order number.
orderId: 1 amount: 8000
orderId: 3 amount: 4000
orderId: 1 amount: 5000
orderId: 1 amount: 4000
Sum the amount of all orders with orderId = 1.
select orderId, sum(orderAmount) as totalAmount from orderList where id = 1 group by orderId;Having
- Used with aggregate function
- Return the filtered groups
Example
Find all institutions with an average scholarship greater than 7000.

SELECT institutionId, ROUND(avg(scholarshipAmount),5) AS total FROM scholarshiprecord GROUP BY institutionId Having total > 7000Conclusion
group by: to filter out multiple different groups with the same field name- For example: Sum of order for multiple ordierIds
having: to be used to filter these groups- The specific condition of the groups, For example, the average greater than..., the total greater than ..., etc.