4.1 Nglumpukake kolom

Sing penting banget yaiku yen sampeyan nglumpukake rekaman, banjur ing bagean kasebut SELECTsampeyan mung bisa nemtokake kolom sing data diklompokake.

Sampeyanora bisanulis pitakon jinis lan nemtokake SELECTkolom jeneng ing bagean :

SELECT brand, name
FROM product
GROUP BY brand

Sampeyan duwe Bunch saka larik ing tabel produk karo lapangan jeneng , lan iku ora cetha kang baris sampeyan kudu sulih kene. Mikir maneh: sampeyan pengin ngerti jumlah produk saben merek lan carane tabel asil bisa njaluk jeneng produk?

Yen sampeyan nggunakake operator GROUP BY, banjur baris normal ora bisa mlebu menyang asil, nanging mung kolom kang data diklompokaké lan "diwilang kolom", kayataCOUNT(*)

4.2 Ngelompokake miturut kolom sing diwilang

Nanging sampeyan bisa nglumpukake kanthi pirang-pirang kolom lan uga kanthi kolom sing diwilang. Tuladha:

SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year

Lan asil saka pitakonan iki:

hire_year gunggung
2012 1
2013 1
2014 1
2015 2
2018 1

Ayo analisa panjaluk kita.

Ing tabel karyawan , saben pegawe duwe tanggal ngrekrut unik, supaya data klompok dening iku ora bakal bisa - bakal ana siji rekaman kanggo saben tanggal lan kelompok ora bakal nggawe akeh raos. Nanging yen kita pindhah saka tanggal hiring kanggo taun hiring, iku uga bisa dadi kahanan ing ngendi perusahaan nyewo sawetara karyawan ing taun sing padha.

Ayo ndeleng maneh kaya apa tabel iki sadurunge dikelompokake:

SELECT
 	id,
 	name,
 	YEAR(join_date) AS hire_year,
 	join_date
FROM employee

Lan asil saka pitakonan iki:

id jeneng hire_year join_date
1 Iwan Iwan 2012 30-06-2012
2 Petrov Petruk 2013 2013-08-12
3 Ivanov Sergey 2014 2014-01-01
4 Rabinovich Moisha 2015 2015-05-12
5 Kirienko Anastasia 2015 10-10-2015
6 Vaska 2018 2018-11-11

Nanging tabel asil iki bisa diklompokaké miturut hire_year lan mangerteni carane akeh wong sing direkrut ing taun tartamtu.

4.3 Ngelompokake kanthi pirang-pirang kolom

Saiki ayo nyoba ngerteni jumlah karyawan sing disewa saben wulan saben taun. Kanggo nindakake iki, kita kudu nambah ora siji, nanging rong kolom sing diwilang menyang pitakonan bebarengan - taun nyewa (hire_year) lan sasi nyewa (hire_month).

Ayo nulis pitakon kaya iki:

SELECT
 	id,
 	name,
 	YEAR(join_date) AS hire_year,
 	MONTH(join_date) AS hire_month,
 	join_date
FROM employee

Lan asil saka pitakonan iki:

id jeneng hire_year nyewa_wulan join_date
1 Iwan Iwan 2012 6 30-06-2012
2 Petrov Petruk 2013 8 2013-08-12
3 Ivanov Sergey 2014 1 2014-01-01
4 Rabinovich Moisha 2015 5 2015-05-12
5 Kirienko Anastasia 2015 10 10-10-2015
6 Vaska 2018 sewelas 2018-11-11

Yen kita nglumpukake data ing tabel asil iki miturut sasi, mula kita mung nglumpukake wong dadi klompok, preduli saka taun sing direkrut. Lan kita kudu tabel asil duwe telung kolom: taun, sasi, lan jumlah karyawan nyewo.

Kanggo nindakake iki, sawise operator, GROUP BYsampeyan kudu nggunakake jeneng ora siji kolom, nanging loro. Tuladha:

SELECT
 	YEAR(join_date) AS hire_year,
 	MONTH(join_date) AS hire_month,
 	COUNT(*) AS total
FROM employee
GROUP BY hire_year, hire_month

Lan asil saka pitakonan iki:

hire_year nyewa_wulan gunggung
2012 6 1
2013 8 1
2014 1 1
2015 5 1
2015 10 1
2018 sewelas 1

Kita duwe sawetara cathetan ing meja, supaya ana unit ing endi wae ing kolom total. Lan omong-omong, elinga yen luwih akeh kolom sing dikelompokake, luwih akeh baris sing ana ing asil kasebut.