SQL - GROUP BY
SQL GROUP BY
GROUP BY adalah klausa dalam pernyataan SQL yang digunakan untuk mengelompokkan baris data berdasarkan satu atau beberapa kolom tertentu dalam tabel. Itu memungkinkan Anda untuk melakukan agregasi data dan menerapkan fungsi agregat seperti SUM, COUNT, AVG, MIN, MAX, dll., pada setiap kelompok data yang terbentuk.
Berikut adalah contoh penggunaan GROUP BY dalam pernyataan SQL:
Misalkan kita memiliki tabel "Orders" dengan kolom-kolom "CustomerID", "ProductID", dan "Quantity". Kita ingin menghitung total jumlah barang yang dipesan oleh setiap pelanggan.
Contoh query :
SELECT CustomerID, SUM(Quantity) AS TotalQuantity
FROM Orders
GROUP BY CustomerID;
Pada contoh di atas, kita menggunakan GROUP BY pada kolom "CustomerID" untuk mengelompokkan data berdasarkan pelanggan. Kemudian, menggunakan fungsi agregat SUM pada kolom "Quantity" untuk menghitung total jumlah barang yang dipesan oleh setiap pelanggan. Output akan mencantumkan CustomerID dan TotalQuantity untuk setiap kelompok pelanggan.
Berikut adalah beberapa hal yang perlu diperhatikan saat menggunakan GROUP BY:
1. Kolom yang tidak dimasukkan dalam klausa GROUP BY harus digunakan dalam fungsi agregat atau disertakan dalam SELECT statement dengan klausa GROUP BY.
2. Klausa GROUP BY harus berada setelah klausa FROM dan WHERE, tetapi sebelum klausa ORDER BY jika ada.
3. Anda dapat menggunakan beberapa kolom dalam klausa GROUP BY untuk mengelompokkan data berdasarkan beberapa kriteria.
4. Anda dapat menggunakan klausa HAVING setelah GROUP BY untuk memfilter kelompok data berdasarkan kriteria tambahan.
Berikut adalah contoh tambahan penggunaan GROUP BY dengan klausa HAVING:
Misalkan kita ingin mengambil hanya kelompok pelanggan yang memiliki total jumlah barang lebih dari 100.
Contoh query :
SELECT CustomerID, SUM(Quantity) AS TotalQuantity
FROM Orders
GROUP BY CustomerID
HAVING SUM(Quantity) > 100;
Pada contoh di atas, kita menggunakan HAVING setelah GROUP BY untuk memfilter hanya kelompok pelanggan dengan total jumlah barang lebih dari 100. Hanya kelompok yang memenuhi kriteria tersebut yang akan dimasukkan dalam hasil query.
Dengan menggunakan GROUP BY, Anda dapat mengelompokkan data dalam tabel berdasarkan kolom tertentu dan menerapkan fungsi agregat untuk melakukan perhitungan pada setiap kelompok data yang terbentuk.
Untuk menggunakan klausa GROUP BY pada dua tabel, Anda akan membutuhkan penggabungan (join) antara kedua tabel tersebut. Berikut adalah contoh query dengan klausa GROUP BY yang melibatkan dua tabel:
Misalkan kita memiliki dua tabel: "Orders" dengan kolom-kolom "OrderID", "CustomerID", dan "TotalAmount", serta "Customers" dengan kolom-kolom "CustomerID" dan "Country". Kita ingin menghitung total jumlah pesanan dan total jumlah uang yang dihabiskan untuk setiap negara.
contoh query :
SELECT c.Country, COUNT(o.OrderID) AS TotalOrders, SUM(o.TotalAmount) AS TotalSpent
FROM Customers c
JOIN Orders o ON c.CustomerID = o.CustomerID
GROUP BY c.Country;
Pada contoh di atas, kita menggabungkan tabel "Customers" dan "Orders" menggunakan klausa JOIN dengan kondisi penggabungan pada kolom "CustomerID". Kemudian, menggunakan GROUP BY pada kolom "Country" dari tabel "Customers" untuk mengelompokkan data berdasarkan negara. Di dalam fungsi agregat, kita menggunakan COUNT untuk menghitung total pesanan dan SUM untuk menghitung total uang yang dihabiskan pada setiap kelompok negara. Output akan mencantumkan Country, TotalOrders, dan TotalSpent untuk setiap kelompok negara.
Penggabungan tabel dapat dilakukan dengan menggunakan klausa JOIN seperti dalam contoh di atas. Anda perlu memastikan bahwa kolom yang digunakan untuk penggabungan memiliki hubungan yang sesuai antara kedua tabel (misalnya, CustomerID harus sesuai antara Customers dan Orders). Selain itu, kolom-kolom yang ingin Anda gunakan dalam SELECT atau fungsi agregat harus disebutkan dengan menggunakan nama tabel atau alias sebelumnya (misalnya, c.Country).
Dengan menggunakan penggabungan (join) antara tabel dan klausa GROUP BY, Anda dapat mengelompokkan data dari dua tabel berdasarkan kriteria tertentu dan melakukan perhitungan pada setiap kelompok data yang terbentuk.
Komentar
Posting Komentar