Home » SQL » Klausa HAVING SQL : Syntax dan Contohnya

Klausa HAVING SQL : Syntax dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Section Artikel

Klausa SQL HAVING

Klausa HAVING ditambahkan ke SQL karena kata kunci WHERE tidak dapat digunakan dengan fungsi agregat.

Syntax HAVING

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

Contoh Database 1

Di bawah ini adalah pilihan dari tabel “Customer” di database contoh Northwind:

IdCustomerNamaCustomerNamaKontakAlamatKotaKodePosNegara
1
Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Jerman
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexiko
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexiko
4
Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPInggris
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Contoh SQL HAVING

Pernyataan SQL berikut mencantumkan jumlah pelanggan di setiap negara. Hanya sertakan negara dengan lebih dari 5 pelanggan:

Contoh

SELECT COUNT(IdCustomer), Negara
FROM Customers
GROUP BY Negara
HAVING COUNT(IdCustomer) > 5;

Pernyataan SQL berikut mencantumkan jumlah pelanggan di setiap negara, diurutkan dari tinggi ke rendah (Hanya sertakan negara dengan lebih dari 5 pelanggan):

SELECT COUNT(IdCustomer), Negara
FROM Customers
GROUP BY Negara
HAVING COUNT(IdCustomer) > 5
ORDER BY COUNT(IdCustomer) DESC;

Contoh Database 2

Berikut adalah pilihan dari tabel “Orders” di database contoh Northwind:

IdOrderIdCustomerIdEmployeeTanggalPesanIdShipper
102489051996-07-043
102498161996-07-051
102503441996-07-082

Dan pilihan dari tabel “Employees”:

IdEmployeeLastNameFirstNameBirthDateFotoCatatan
1DavolioNancy1968-12-08EmpID1.picEducation includes a BA….
2FullerAndrew1952-02-19EmpID2.picAndrew received his BTS….
3LeverlingJanet1963-08-30EmpID3.picJanet has a BS degree….

Contoh Lain

Pernyataan SQL berikut mencantumkan karyawan yang telah mendaftarkan lebih dari 10 pesanan:

Contoh

SELECT Employees.LastName, COUNT(Orders.IdOrder) AS JumlahPesanan
FROM (Orders
INNER JOIN Employees ON Orders.IdEmployee = Employees.IdEmployee)
GROUP BY LastName
HAVING COUNT(Orders.IdOrder) > 10;

Pernyataan SQL berikut mencantumkan jika karyawan “Davolio” atau “Fuller” telah mendaftarkan lebih dari 25 pesanan:

Contoh

SELECT Employees.LastName, COUNT(Orders.IdOrder) AS JumlahPesanan
FROM Orders
INNER JOIN Employees ON Orders.IdEmployee = Employees.IdEmployee
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.IdOrder) > 25;

You may also like