Mengelompokkan data

Tersedia

3.1 GROUP BY pernyataan

Bahasa SQL sangat kuat. Selain pengambilan data sederhana, ini memungkinkan Anda mengelompokkan data pada waktu kueri. Misalnya kita ingin mengetahui berapa jenis produk dari masing-masing merek yang kita miliki, bagaimana caranya?

Ada operator khusus untuk ini GROUP BY, begini cara penulisannya.

GROUP BY column

Mari tulis kueri yang meminta SQL menampilkan jumlah jenis produk untuk setiap merek. Permintaan seperti itu akan terlihat seperti ini:

SELECT brand, COUNT(*)
FROM product
GROUP BY brand

Anda akan mendapatkan hasil kueri berikut:

merek menghitung(*)
(BATAL) 2
Bosch 4
IKEA 6
LG 2
Bunga pintar 1

Mari kita analisis dengan cermat permintaan seperti apa yang kita tulis, dan hasil seperti apa yang kita dapatkan. Hasilnya, kami melihat dua kolom. Yang pertama dengan daftar merek, yang logis. Kami ingin mendapatkan sesuatu seperti satu set pasangan "brand --> quantity" .

Harap dicatat bahwa di antara nama merek ada kata NULL. Memang, kami memiliki produk dengan merek yang tertulis NULL, dan kami melihatnya di sini. Sedikit tak terduga, tapi membantu. Kita bisa melihat berapa banyak produk yang tidak bermerek.

Sekarang mari kita lihat lebih dekat permintaan tersebut. Kami ingin mengetahui jumlah produk dari masing-masing merek, jadi kami menulis GROUP BY brand, dan di dalamnya SELECTkami menulis merek dan ekspresinyaCOUNT(*)

COUNT(*)adalah apa yang disebut fungsi agregat yang dilakukan pada sekelompok baris. Dalam kasus kami, dia hanya menghitung jumlahnya. Ada banyak fungsi seperti itu, dan kita akan melihatnya nanti.

3.2 Kueri kompleks dengan GROUP BY

Sekarang mari kita tulis kueri di mana pertama-tama kita membuang produk yang harganya kurang dari 10, lalu mengelompokkannya. Permintaan seperti itu akan terlihat seperti ini:

SELECT brand, COUNT(*)
FROM product
WHERE price > 10
GROUP BY brand

Anda akan mendapatkan hasil kueri berikut:

merek menghitung(*)
Bosch 4
IKEA 5
LG 2
Bunga pintar 1

Semua produk NULL menghilang dari tabel hasil kami, karena harganya sangat murah, dan jumlah produk IKEA berkurang 1. Dari 6 menjadi 5.

Ini menunjukkan bahwa Anda pertama-tama menerapkan WHEREgaris yang diinginkan untuk difilter, dan baru kemudian menerapkan pengelompokan ke hasilnya.

3.3 Nama kolom hasil

Ngomong-ngomong, Anda bisa memberi nama pada kolom yang dihasilkan. Lihat bagaimana server menyarankan namanya count(*)? Mari kita ganti dengan total. Permintaan seperti itu akan terlihat seperti ini:

SELECT brand, COUNT(*) AS total
FROM product
WHERE price > 10
GROUP BY brand

Anda akan mendapatkan hasil kueri berikut:

merek total
Bosch 4
IKEA 5
LG 2
Bunga pintar 1

Anda juga dapat mengganti nama kolom yang ada. Mari ambil salah satu kueri yang digunakan sebelumnya dan tambahkan nama baru ke kolom.

SELECT
id AS  product_id,
name AS product_name,
price
FROM product
WHERE price < 20 AND brand IS NOT NULL

Anda akan mendapatkan hasil kueri berikut:

ID Produk nama Produk harga
2 Kursi 5.00
8 Lampu 15.00
Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar