Saya tahu saya harus memiliki (meskipun aku don't tahu mengapa) a GROUP BY
klausul pada akhir query SQL yang menggunakan fungsi agregat seperti menghitung
, jumlah
, `avg, dll:
SELECT count(userID), userName
FROM users
GROUP BY userName
Kapan lagi akan GROUP BY
menjadi berguna, dan apa kinerja konsekuensi?
Untuk mengambil jumlah widget dari masing-masing widget kategori yang memiliki lebih dari 5 widget, anda bisa melakukan hal ini:
SELECT WidgetCategory, count(*)
FROM Widgets
GROUP BY WidgetCategory
HAVING count(*) > 5
&Quot;memiliki" klausa adalah sesuatu yang orang-orang sering melupakan, malah memilih untuk mengambil semua data mereka untuk klien dan iterasi melalui itu ada.
KELOMPOK ini mirip dengan BERBEDA dalam bahwa hal itu memiliki beberapa catatan menjadi satu.
Contoh ini, yang dipinjam dari http://www.devguru.com/technologies/t-sql/7080.asp, daftar produk yang berbeda dalam tabel Produk.
SELECT Product FROM Products GROUP BY Product
Product
-------------
Desktop
Laptop
Mouse
Network Card
Hard Drive
Software
Book
Accessory
Keuntungan dari KELOMPOK OLEH lebih dari yang BERBEDA, adalah bahwa hal itu dapat memberikan anda kontrol granular bila digunakan dengan HAVING klausa.
SELECT Product, count(Product) as ProdCnt
FROM Products
GROUP BY Product
HAVING count(Product) > 2
Product ProdCnt
--------------------
Desktop 10
Laptop 5
Mouse 3
Network Card 9
Software 6
Menghitung jumlah kali kategori yang digunakan mungkin google contoh:
SELECT TagName, Count(*)
AS TimesUsed
FROM Tags
GROUP BY TagName ORDER TimesUsed
Jika anda hanya ingin nilai yang berbeda dari tag, saya akan lebih memilih untuk menggunakan BERBEDA
pernyataan.
SELECT DISTINCT TagName
FROM Tags
ORDER BY TagName ASC
GROUP BY juga membantu ketika anda ingin menghasilkan laporan yang akan rata-rata atau jumlah sekelompok data. Anda dapat KELOMPOK Oleh Dinas ID dan JUMLAH semua pendapatan penjualan atau AVG menghitung penjualan untuk masing-masing bulan.