Pertanyaan Menggunakan grup pada beberapa kolom


Saya mengerti maksudnya GROUP BY x 

Tapi bagaimana caranya GROUP BY x, y bekerja, dan apa artinya?


747
2018-03-10 23:11


asal


Jawaban:


Group By X cara masukkan semua yang memiliki nilai yang sama untuk X dalam satu grup.

Group By X, Y cara masukkan semua yang memiliki nilai yang sama untuk X dan Y dalam satu grup.

Untuk mengilustrasikan menggunakan contoh, katakanlah kita memiliki tabel berikut, yang harus dilakukan 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 group by hanya 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 mau 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 menurut dua kolom, itu mengatakan "Kelompokkan mereka sehingga semua dari mereka dengan Subyek dan Semester yang sama berada dalam grup yang sama, dan kemudian menghitung semua fungsi agregat (Hitung, Jumlah, Rata-rata, dll.) untuk masing-masing kelompok tersebut ". Dalam contoh ini, ini ditunjukkan oleh fakta bahwa, ketika kita menghitungnya, ada tiga orang 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 ke grup "MKB114, Semester 2")

Semoga itu masuk akal.


1580
2018-03-10 23:24



Klausa GROUP BY digunakan bersama dengan fungsi agregat untuk mengelompokkan 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 daftar tabel)

3) WHERE (klausa digunakan untuk memfilter rekaman)

4) GROUP BY (klausa dapat digunakan dalam pernyataan SELECT untuk mengumpulkan data   di beberapa catatan dan mengelompokkan hasilnya menurut satu atau beberapa kolom)

5) HAVING (klausa digunakan dalam kombinasi dengan klausa GROUP BY ke   batasi kelompok-kelompok baris yang dikembalikan hanya kepada mereka yang kondisinya   adalah 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 mereka tetapkan, jika tidak Anda bisa mendapatkan kesalahan.

Fungsi Agregat adalah:

MIN mengembalikan nilai terkecil di kolom tertentu

SUM mengembalikan jumlah nilai numerik di kolom tertentu

AVG mengembalikan nilai rata-rata dari kolom yang diberikan

COUNT mengembalikan jumlah total nilai dalam kolom tertentu

COUNT (*) mengembalikan jumlah baris dalam sebuah tabel


18
2017-12-15 22:14