5.1 Nduwe statement
Ana operator liyane sing migunani ing SQL sing digunakake karo GROUP BY
, diarani HAVING
.
Ing maknane, iku meh padha karo operator WHERE
. Sampeyan mung WHERE
ngidini sampeyan nyetel saringan baris sadurunge ngelompokake, lan kanthi bantuan HAVING
sampeyan bisa nyetel saringan sing ditrapake kanggo rekaman sawise dikelompokake.
Tampilan umum pitakon nalika nggunakake asil pangelompokan lan nyaring kaya ing ngisor iki:
SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING condition
HAVING
mung bisa digunakake yen panjalukan ngemot GROUP BY
.
Ayo nulis pitakon ing ngendi kita nampilake jumlah karyawan sing direkrut miturut taun.
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 |
Lan saiki kita ora kalebu taun nalika siji utawa kurang karyawan direkrut. Tuladha:
SELECT
YEAR(join_date) AS hire_year,
COUNT(*) AS total
FROM employee
GROUP BY hire_year
HAVING total > 1
Lan asil saka pitakonan iki:
hire_year | gunggung |
---|---|
2015 | 2 |
5.3 Urutan eksekusi statement
Kanggo nulis pitakon SQL sing bener lan efisien, sampeyan kudu ngerti carane dieksekusi dening server SQL.
Prosedur kanggo nindakake tumindak diatur kanthi ketat lan ora gumantung saka kepinginan sampeyan. Sampeyan ora bisa ngatur maneh operator lan njaluk pesenan beda.
Query SQL dieksekusi ing sawetara tahapan ing urutan iki.
- Tahap 1 - njupuk baris
- Kaping pisanan, kabeh baris saka tabel sing ditemtokake dipilih.
- Banjur kolom sing diwilang ditambahake.
- Banjur kabeh baris, mung sing marem kondisi tetep
WHERE
- Tahap 2 - klompok
- Pengelompokan banjur ditrapake kanggo asil.
- Sajrone klompok, lapangan kayata
COUNT(*)
. - Pungkasan, saringan ditrapake kanggo asil klompok
HAVING
. - Tahap 3 - ngurutake
- Larik sing dipikolehi ing langkah sadurunge diurutake nggunakake
ORDER BY
.
Pungkasan, asil bisa dipotong nganggo LIMIT
lan OFFSET
.
GO TO FULL VERSION