SQL HAVING Clause
Klausa HAVING ditambahkan ke SQL karena kata kunci WHERE tidak dapat digunakan dengan fungsi agregat.
HAVING Sintaks :
SELECT nama_kolom ...
FROM nama_table
WHERE kondisi
GROUP BY nama_kolomHAVING Kondisi
ORDER BY nama_kolom;
Contoh SQL HAVING Clause
Pernyataan SQL berikut mencantumkan jumlah customers di setiap country. Hanya sertakan country dengan lebih dari 5 customers:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
| terlihat hasil cuountry mana saja yang memiliki customers lebih dari 5 |
Pernyataan SQL berikut mencantumkan jumlah customers di setiap country, diurutkan dari tinggi ke rendah/descending dan hanya termasuk negara dengan lebih dari 5 pelanggan :
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;
| hasil sama seperti sebelumnya tetapi jumlah count di urutkan descending |
SQL HAVING Contoh lagi
Pernyataan SQL berikut mencantumkan karyawan yang telah mendaftarkan lebih dari 10 pesanan:
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;
| hasil query akan terlihat nama customer yang memiliki order lebih dari 10 |
Pernyataan SQL berikut bernama karyawan "Davolio" atau "Fuller" telah mendaftarkan lebih dari 25 pesanan:
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;
| hasil query |
Comments