Saya memahami titik GROUP BY x
Tapi bagaimana GROUP BY x, y
bekerja, dan apa artinya?
Group By X
berarti menempatkan semua orang dengan nilai yang sama untuk X dalam satu kelompok.
Group By X, Y
berarti menempatkan semua orang dengan nilai yang sama untuk kedua X dan Y dalam satu kelompok.
Untuk menggambarkan menggunakan contoh, let's mengatakan bahwa kita memiliki tabel berikut, untuk melakukan dengan yang menghadiri apa yang subjek di universitas:
Table: Subject_Selection
Subject Semester Attendee
---------------------------------
ITB001 1 John
ITB001 1 Bob
ITB001 1 Mickey
ITB001 2 Jenny
ITB001 2 James
MKB114 1 John
MKB114 1 Erica
Ketika anda menggunakan group by
pada kolom subjek hanya; mengatakan:
select Subject, Count(*)
from Subject_Selection
group by Subject
Anda akan mendapatkan sesuatu seperti:
Subject Count
------------------------------
ITB001 5
MKB114 2
...karena ada 5 entri untuk ITB001, dan 2 untuk MKB114
Jika kita group by
dua kolom:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
kita akan mendapatkan ini:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
Hal ini karena, ketika kita grup dengan dua kolom, itu adalah mengatakan "Kelompok mereka sehingga semua orang dengan Subjek yang sama dan Semester berada dalam kelompok yang sama, dan kemudian menghitung semua fungsi agregat (Count, Sum, Average, dll.) untuk masing-masing kelompok". Dalam contoh ini, hal ini ditunjukkan oleh fakta bahwa, ketika kita menghitung mereka, ada tiga orang-orang yang melakukan ITB001 di semester 1, dan dua melakukan hal itu di semester 2. Kedua orang yang melakukan MKB114 di semester 1, sehingga tidak ada baris untuk semester 2 (tidak ada data yang cocok ke dalam kelompok "MKB114, Semester 2")
Mudah-mudahan yang masuk akal.
The GROUP BY
klausul ini digunakan dalam hubungannya dengan fungsi agregat untuk kelompok hasil-set oleh satu atau lebih kolom. misalnya:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
Ingat perintah ini:
PILIH (digunakan untuk memilih data dari database)
DARI (klausa ini digunakan untuk membuat daftar tabel)
di MANA (klausa ini digunakan untuk menyaring data)
KELOMPOK (klausa dapat digunakan dalam pernyataan SELECT untuk mengumpulkan data di beberapa catatan dan kelompok hasil dengan satu atau lebih kolom)
MEMILIKI (klausa ini digunakan dalam kombinasi dengan klausa GROUP BY untuk membatasi kelompok baris kembali ke hanya orang-orang yang kondisi adalah BENAR)
ORDER BY (kata kunci yang digunakan untuk mengurutkan hasil-set)
Anda dapat menggunakan semua ini jika anda menggunakan fungsi agregat, dan ini adalah urutan yang harus diatur, jika tidak, anda bisa mendapatkan error.
Fungsi agregat adalah:
MIN mengembalikan nilai terkecil dalam kolom yang diberikan
SUM mengembalikan jumlah dari nilai-nilai numerik di kolom tertentu
AVG kembali nilai rata-rata dari suatu kolom
MENGHITUNG kembali jumlah total nilai dalam kolom tertentu
COUNT(*) mengembalikan jumlah baris dalam sebuah tabel