• Home
  • Jobs
  • Courses
  • Certifications
  • Companies
  • Online IDE
  • Login
  • Signup
MySQL
  • Introduction To MySQL
  • MySQL RDBMS
  • MySQL SQL
  • MySQL SELECT Statement
  • MySQL WHERE Clause
  • MySQL AND, OR And NOT Operators
  • MySQL ORDER BY Keyword
  • MySQL INSERT INTO Statement
  • MySQL NULL Values
  • MySQL UPDATE Statement
  • MySQL DELETE Statement
  • MySQL LIMIT Clause
  • MySQL MIN() And MAX() Functions
  • MySQL COUNT(), AVG() And SUM() Functions
  • MySQL LIKE Operator
  • MySQL Wildcards
  • MySQL IN Operator
  • MySQL BETWEEN
  • MySQL Aliases
  • MySQL Joins
  • MySQL INNER JOIN Keyword
  • MySQL LEFT JOIN Keyword
  • MySQL RIGHT JOIN Keyword
  • MySQL CROSS JOIN Keyword
  • MySQL Self Join
  • MySQL UNION Operator
  • MySQL GROUP BY Statement
  • MySQL HAVING Clause
  • MySQL EXISTS Operator
  • MySQL ANY And ALL Operators
  • MySQL INSERT INTO SELECT Statement
  • MySQL CASE Statement
  • MySQL NULL Functions
  • MySQL Comments
  • MySQL Operators
  • MySQL CREATE DATABASE Statement
  • MySQL DROP DATABASE Statement
  • MySQL CREATE TABLE Statement
  • MySQL DROP TABLE Statement
  • MySQL ALTER TABLE Statement
  • MySQL Constraints
  • MySQL NOT NULL Constraint
  • MySQL UNIQUE Constraint
  • MySQL PRIMARY KEY Constraint
  • MySQL FOREIGN KEY Constraint
  • MySQL CHECK Constraint
  • MySQL DEFAULT Constraint
  • MySQL CREATE INDEX Statement
  • MySQL AUTO INCREMENT Field
  • MySQL Working With Dates
  • MySQL Views
  • MySQL Data Types
  • MySQL Functions
  • Home
  • Courses
  • MySQL
  • MySQL HAVING Clause

MySQL HAVING Clause

Previous Next

The MySQL HAVING Clause

The HAVING clause was added to SQL because the WHERE keyword cannot be used with aggregate functions.

HAVING Syntax

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);



Practice Excercise Practice now

Demo Database

Below is a selection from the "Customers" table in the Northwind sample database:

CustomerID CustomerName ContactName Address City PostalCode Country
1
 
Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4
 
Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden



Practice Excercise Practice now

MySQL HAVING Examples

The following SQL statement lists the number of customers in each country. Only include countries with more than 5 customers:
 

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

The following SQL statement lists the number of customers in each country, sorted high to low (Only include countries with more than 5 customers):
 
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;



Practice Excercise Practice now

Demo Database 2


Below is a selection from the "Orders" table in the Northwind sample database:

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

And a selection from the "Employees" table:
EmployeeID LastName FirstName BirthDate Photo Notes
1 Davolio Nancy 1968-12-08 EmpID1.pic Education includes a BA....
2 Fuller Andrew 1952-02-19 EmpID2.pic Andrew received his BTS....
3 Leverling Janet 1963-08-30 EmpID3.pic Janet has a BS degree....



Practice Excercise Practice now

More HAVING Examples

The following SQL statement lists the employees that have registered more than 10 orders:
 

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;

The following SQL statement lists if the employees "Davolio" or "Fuller" have registered more than 25 orders:
 
SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;



Practice Excercise Practice now

Previous Next
COMPANY
  • About us
  • Careers
  • Contact Us
  • In Press
  • People
  • Companies List
Products
  • Features
  • Coding Assessments
  • Psychometric Assessment
  • Aptitude Assessments
  • Tech/Functional Assessments
  • Video Assessment
  • Fluency Assessment
  • Campus
 
  • Learning
  • Campus Recruitment
  • Lateral Recruitment
  • Enterprise
  • Education
  • K 12
  • Government
OTHERS
  • Blog
  • Terms of Services
  • Privacy Policy
  • Refund Policy
  • Mart Category
Partner
  • Partner Login
  • Partner Signup

Copyright © RVR Innovations LLP 2025 | All rights reserved - Mytat.co is the venture of RVR Innovations LLP