4.1 Nglumpukake kolom
Sing penting banget yaiku yen sampeyan nglumpukake rekaman, banjur ing bagean kasebut SELECT
sampeyan mung bisa nemtokake kolom sing data diklompokake.
Sampeyanora bisanulis pitakon jinis lan nemtokake SELECT
kolom 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 BY
sampeyan 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.