ح
حبيبي قطر
Module 7intermediate

HAVING Clause

Take Quiz
Lessons
HAVING vs WHERE
1 / 1

WHERE filters rows BEFORE grouping. HAVING filters groups AFTER grouping. Use HAVING with aggregate functions.

Syntax

text-blue-600 dark:text-blue-400 font-semibold">SELECT column, aggregate text-blue-600 dark:text-blue-400 font-semibold">FROM text-blue-600 dark:text-blue-400 font-semibold">table text-blue-600 dark:text-blue-400 font-semibold">GROUP BY column text-blue-600 dark:text-blue-400 font-semibold">HAVING condition;

Sample Tables Used in This Course

employeesEmployee records
ColumnTypeKey
idINTEGERPK
nameTEXT
departmentTEXT
salaryINTEGER
countryTEXT
manager_idINTEGERFK → employees.id
emailTEXT
hire_dateTEXT
Sample Data (first 5 rows)
idnamedepartmentsalarycountrymanager_idemailhire_date
1Ahmed Al-ThaniIT25000QatarNULLahmed@qatarco.qa2018-03-15
2Fatima Al-KuwariHR18000Qatar1fatima@qatarco.qa2019-06-01
3Mohammed Al-SulaitiFinance22000Qatar1mohammed@qatarco.qa2017-09-20
4Sara Al-MansouriIT20000Qatar1sara@qatarco.qa2020-01-10
5Khalid HassanIT17000Egypt4khalid@qatarco.qa2021-04-05
ordersOrder transactions
ColumnTypeKey
idINTEGERPK
customer_idINTEGERFK → customers.id
amountDECIMAL
order_dateTEXT
regionTEXT
statusTEXT
Sample Data (first 5 rows)
idcustomer_idamountorder_dateregionstatus
11150002024-01-15Dohacompleted
2285002024-01-20Dohacompleted
33220002024-02-01Dohapending
4150002024-02-10Al Wakrahcompleted
54120002024-02-15Lusailshipped

Relationships: Primary Keys (PK) uniquely identify rows. Foreign Keys (FK) reference other tables.

Practice with these tables in the SQL Console. Click "Open Console" in the sidebar.

Example

text-blue-600 dark:text-blue-400 font-semibold">SELECT department, text-blue-600 dark:text-blue-400 font-semibold">COUNT(*) text-blue-600 dark:text-blue-400 font-semibold">AS emp_count text-blue-600 dark:text-blue-400 font-semibold">FROM employees text-blue-600 dark:text-blue-400 font-semibold">GROUP BY department text-blue-600 dark:text-blue-400 font-semibold">HAVING text-blue-600 dark:text-blue-400 font-semibold">COUNT(*) > text-amber-600 dark:text-amber-400">5;

Shows only departments with more than 5 employees

Learning Objectives

  • Understand difference between WHERE and HAVING
  • Filter groups with HAVING