Section Artikel
Statement SQL GROUP BY
Pernyataan GROUP BY digunakan untuk mengelompokkan baris yang memiliki nilai yang sama ke dalam baris ringkasan, seperti “temukan jumlah pelanggan di setiap negara”.
Pernyataan GROUP BY sering digunakan dengan fungsi agregat (COUNT, MAX, MIN, SUM, AVG)
untuk mengelompokkan hasil yang ditetapkan oleh satu atau lebih kolom.
Syntax GROUP BY
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);
Contoh Database 1
Di bawah ini adalah pilihan dari tabel “Customer” di database contoh Northwind:
IdCustomer | NamaCustomer | NamaKontak | Alamat | Kota | KodePos | Negara |
---|---|---|---|---|---|---|
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 |
Contoh SQL GROUP BY
Pernyataan SQL berikut mencantumkan jumlah pelanggan di setiap negara:
Contoh
SELECT COUNT(IdCustomer), Negara FROM Customers GROUP BY Negara;
Pernyataan SQL berikut mencantumkan jumlah pelanggan di setiap negara, diurutkan dari tinggi ke rendah:
SELECT COUNT(IdCustomer), Negara FROM Customers GROUP BY Negara ORDER BY COUNT(IdCustomer) DESC;
Contoh Database 2
Berikut adalah pilihan dari tabel “Orders” di database contoh Northwind:
IdOrder | IdCustomer | IdEmployee | TanggalPesan | IdShipper |
---|---|---|---|---|
10248 | 90 | 5 | 1996-07-04 | 3 |
10249 | 81 | 6 | 1996-07-05 | 1 |
10250 | 34 | 4 | 1996-07-08 | 2 |
Dan pilihan dari tabel “Shippers”:
IdShipper | NamaShipper |
---|---|
1 | Speedy Express |
2 | United Package |
3 | Federal Shipping |
Contoh GROUP BY Dengan JOIN
Pernyataan SQL berikut mencantumkan jumlah pesanan yang dikirim oleh setiap pengirim:
Contoh
SELECT Shippers.NamaShippers, COUNT(Orders.IdOrder) AS JumlahPesanan FROM Orders LEFT JOIN Shippers ON Orders.IdShipper = Shippers.IdShipper GROUP BY NamaShippers;