T-SQL : Belajar SQL Query GROUPING (Group By) dan HAVING Dengan Mudah
Grouping pada sql adalah untuk mengelompokan data, agar data yang sama tampil manjadi satu baris saja (tidak duplikat). Hal ini hampir sama dengan dengan DISTINCT, tetapi bedanya adalah Grouping bisa kita gunakan juga untuk fungsi SUM, AVG, MAX, MIN, COUNT, dan memang fungsi fungsi tersebut harus di-run dengan Grouping. OK, Langsung saja ke contoh : saya mempunyai data seperti dibawah ini :
1.Jika kita ingin mengetahui kode_group apa saja yang ada di table barang :SELECT KODE_GROUP FROM BARANG GROUP BY KODE_GROUP
KODE_GROUP
G001
G002
G003
ini sebenarnya sama dengan :
SELECT DISTINCT KODE_GROUP FROM BARANG
2. Jika kita ingin mengetahui berapa jumlah stock yang dipasok supplier :
SELECT KODE_SUPPLIER, SUM(STOCK) AS JUMLAH_STOCK FROM BARANG
GROUP BY KODE_SUPPLIER
KODE_SUPPLIER JUMLAH_STOCK
40
S001 30
S002 55
3.Jika kita ingin mengetahui berapa harga tertinggi yang di pasok oleh supplier :
SELECT KODE_SUPPLIER, MAX(HARGA) AS HARGA_TERTINGGI FROM BARANG
GROUP BY KODE_SUPPLIER
KODE_SUPPLIER HARGA_TERTINGGI
25000
S001 60000
S002 30000
4.Jika kita ingin mengetahui berapa jumlah barang yang di pasok oleh supplier :
SELECT KODE_SUPPLIER, COUNT( KODE_BARANG) AS JUMLAH_BARANG FROM BARANG
GROUP BY KODE_SUPPLIER
KODE_SUPPLIER JUMLAH_BARANG
1
S001 2
S002 2
Lihatlah, yang saya warnai merah, intinya setiap kolom/field yang kita select HARUS ada/disebutkan juga setelah GROUP BY
HAVING adalah penggantinya WHERE dalam GROUPING, tapi kita juga masih bisa gunakan where dalam grouping. Having digunakan jika field yang kita select sebagai grouping akan dijadikan kriteria (ada kriteria-nya), kita ambil contoh diatas nomor 3 :
Ambil data harga tertinggi dari supplier S001
SELECT KODE_SUPPLIER, MAX(HARGA) AS HARGA_TERTINGGI FROM BARANG GROUP BY KODE_SUPPLIER
HAVING KODE_SUPPLIER='S001'
KODE_SUPPLIER HARGA_TERTINGGI
S001 60000
Sedangkan WHERE adalah kebalikan dari HAVING, yaitu digunakan jika ada kriteria yang field-nya tidak disebutkan dalam Select Grouping, contoh :
Ambil data harga tertinggi dari supplier yang tidak blank dimana kode barangnya B005SELECT KODE_SUPPLIER, MAX(HARGA) AS HARGA_TERTINGGI FROM BARANG
WHERE KODE_BARANG = 'B005'
GROUP BY KODE_SUPPLIER
HAVING KODE_SUPPLIER<>''
KODE_SUPPLIER HARGA_TERTINGGI
S002 30000
Tags:
cara group by, sql statement group by, contoh t-sql sum, contoh t-sql avg, contoh t-sql min, contoh t-sql max, contoh t-sql count,perbedaan having dan where pada sql query
Posting Komentar untuk "T-SQL : Belajar SQL Query GROUPING (Group By) dan HAVING Dengan Mudah"