Saya mengerti maksudnya GROUP BY x
Tetapi bagaimana cara
GROUP BY x, y
kerjanya, dan apa artinya?
Saya mengerti maksudnya GROUP BY x
Tetapi bagaimana cara
GROUP BY x, y
kerjanya, dan apa artinya?
Jawaban:
Group By X
berarti menempatkan semua yang memiliki nilai X yang sama dalam satu kelompok .
Group By X, Y
berarti menempatkan semua yang memiliki nilai yang sama untuk X dan Y dalam satu grup .
Untuk mengilustrasikan menggunakan contoh, katakanlah kita memiliki tabel berikut, berkaitan dengan siapa yang menghadiri mata pelajaran apa 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
Saat Anda menggunakan hanya group by
pada kolom subjek; 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 ke group by
dua kolom:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
kami akan mendapatkan ini:
Subject Semester Count
------------------------------
ITB001 1 3
ITB001 2 2
MKB114 1 2
Ini karena, ketika kita mengelompokkan dua kolom, dikatakan "Kelompokkan mereka sehingga semua yang memiliki Subjek dan Semester yang sama berada di grup yang sama, dan kemudian hitung semua fungsi agregat (Hitung, Jumlah, Rata-Rata, dll.) ) untuk masing - masing grup tersebut " . Dalam contoh ini, ini ditunjukkan oleh fakta bahwa, ketika kami menghitungnya, ada tiga orang yang melakukan ITB001 di semester 1, dan dua melakukannya di semester 2. Kedua orang yang melakukan MKB114 berada di semester 1, jadi tidak ada baris untuk semester 2 (tidak ada data yang cocok dengan grup "MKB114, Semester 2")
Semoga itu masuk akal.
GROUP BY A,B
sama dengan GROUP BY B,A
?
GROUP BY a, b
dan GROUP BY a AND b
karena yang kedua hanya daftar item yang dikelompokkan dengan konten yang persis sama dan tidak ada "grup bawah". Dalam hal ini hasilnya akan sama seperti yang pertama.
The GROUP BY
klausa 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 pesanan ini:
1) SELECT (digunakan untuk memilih data dari database)
2) FROM (klausa digunakan untuk mendaftar tabel)
3) WHERE (klausa digunakan untuk memfilter catatan)
4) GROUP BY (klausa dapat digunakan dalam pernyataan SELECT untuk mengumpulkan data di beberapa catatan dan mengelompokkan hasil dengan satu atau lebih kolom)
5) HAVING (klausa digunakan dalam kombinasi dengan klausa GROUP BY untuk membatasi grup dari baris yang dikembalikan hanya kepada mereka yang kondisinya BENAR)
6) ORDER BY (kata kunci digunakan untuk mengurutkan hasil-set)
Anda dapat menggunakan semua ini jika Anda menggunakan fungsi agregat, dan ini adalah urutan yang harus ditetapkan, jika tidak, Anda bisa mendapatkan kesalahan.
Fungsi Agregat adalah:
MIN mengembalikan nilai terkecil dalam kolom yang diberikan
SUM mengembalikan jumlah nilai numerik dalam kolom yang diberikan
AVG mengembalikan nilai rata-rata kolom yang diberikan
COUNT mengembalikan jumlah total nilai dalam kolom yang diberikan
COUNT (*) mengembalikan jumlah baris dalam tabel