Увод у клаузулу ГРОУП БИ у СКЛ-у
За случајеве у којима морамо груписати редове с истом вриједношћу, класа клаузуле улази у слику. Клаузула ГРОУП БИ је наредба у СКЛ-у која ће извести ову операцију.
Важно је имати на уму да се клаузула ГРОУП БИ користи у изразу СЕЛЕЦТ у упиту након употребе клаузуле ВХЕРЕ.
Синтакса
Синтакса за клаузулу Гроуп Би је -
SELECT column_name1, column_name2, …
FROM table_name
WHERE conditions
GROUP By column_name1, column_name2, …
ORDER By column_name1, column_name2, …;
Објашњење синтаксе
- Изјава СЕЛЕЦТ - СКЛ наредба упита
- табле_наме - име табеле базе података на коју се позива
- услови - односе се на услове које треба проверити
- ГРОУП БИ - клаузула за груписање истих редова заједно
- НАРОЧИТЕ ПО - увијек се користи након групе Клаузулом за распоређивање редова по узлазном или силазном редослиједу. Ово је опционални услов.
Како клаузула ГРОУП БИ функционише у СКЛ-у?
Да бисмо разумели рад Групе Клаузулом, узмимо за помоћ пример. Размотрите табелу са именом као ЗАПОСЛЕНО која садржи основне детаље запосленика као што су име, старост, телефонски број, доб, пол, адреса, ИД е-поште итд.
Табела запослених
име | старост | телефон | пол | емаил |
Јохн | 23 | 123 | Мушки | |
Може | 22 | 456 | Женско | |
Ана | 45 | 644 | Женско | |
Саксије | 57 | 3456 | Женско | |
Рес | 45 | 456 | Женско | |
Тан | 78 | 2456 | Мушки | |
Ран | 34 | 5899 | Мушки | |
Ван | 55 | 7789 | Женско | |
Тунг | 32 | 5689 | Мушки | |
Цхунг | 21 | 4678 | Мушки |
Узмите у обзир да ЗАПОСЛЕНИ имају око 10 уноса.
Доносимо најпре различите вредности „пола“ из ове табеле. Упит који ће нам помоћи да остваримо наш циљ био би -
SELECT gender FROM EMPLOYEE;
Ово ће нам дати следеће вредности-
пол |
Мушки |
Женско |
Женско |
Женско |
Женско |
Мушки |
Мушки |
Женско |
Мушки |
Мушки |
Проблем овде је сувишност вредности, тј. Као што можемо видети да у табели постоје само две јединствене вредности пола, али излаз нам не даје само јединствене вредности, већ и све вредности, чак и ако се понављају.
Дакле, да бисмо добили само јединствене вредности из табеле, користићемо следећи упит -
SELECT gender FROM EMPLOYEE GROUP BY gender;
Резултат који добијемо након извршења овог упита биће -
пол |
Мушки |
Женско |
Група Би ће груписати све исте вредности у редове заједно и вратити само један унос или један ред за њих, као што је то било с редовима „Мале“ и „Фемале“ у табели. То је резултирало са само две јединствене вредности које су биле присутне у колони „род“ и, е. Женско и мушко.
Узмимо сада још један пример табеле која садржи детаље одељења са којим је повезан сваки од ових запослених. Назваћемо ово табелом Емплоиее_Департмент.
Табела запослених
име | ход | одељење |
Јохн | ход1 | Услуга |
Може | ход2 | Финансије |
Ана | ход1 | Услуга |
Саксије | ход2 | Финансије |
Рес | ход3 | Тецх |
Тан | ход5 | Подршка |
Ран | ход3 | Услуга |
Ван | ход3 | Тецх |
Тунг | ход3 | Финансије |
Цхунг | ход5 | ХР |
Дакле, сада извршимо доњи упит и потражимо резултат -
SELECT hod, department FROM Employee_Department GROUP BY hod, department;
Извршење овог упита доноси следећи резултат -
ход | одељење |
ход1 | Услуга |
ход2 | Финансије |
ход3 | Тецх |
ход5 | Подршка |
ход3 | Услуга |
ход3 | Финансије |
ход5 | ХР |
Клаузула ГРОУП БИ функционише и на ходнику и на одељењу ради тражења јединствених редова у горе наведеном сценарију. Провериће комбинацију ходника и одељења у односу на друге записе ходника и одељења ради утврђивања његове јединствености. Ако је ход исти, али одељење различито, онда се тај ред третира као јединствен. Ако су ход и одјел исти за више реда, тада се дупликат не ствара и приказује се само један ред.
ГРУПА ПО Операцијама клаузула
Можемо користити групну клаузулу са неколико функција групирања и обједињавања. Узмимо неколико примера користећи горе поменуте две табеле, тј., ЗАПОСЛЕНО и Запослени_Додељење.
Пример # 1
Добијање броја запослених мушкараца и жена у компанији.
SELECT gender, COUNT(`name`) FROM EMPLOYEE GROUP BY gender;
Извршење овог упита доноси следећи резултат -
ЦОУНТ ('име') | пол |
5 | Мушки |
5 | Женско |
Пример бр. 2
Добијање броја одељења у компанији редоследом броја.
SELECT department, COUNT(`name`) FROM Employee_Department GROUP BY department ORDER BY COUNT(name) DESC;
Извршење овог упита доноси следећи резултат -
ЦОУНТ ('име') | одељење |
3 | Услуга |
3 | Финансије |
2 | Тецх |
1 | Подршка |
1 | ХР |
Пример бр. 3
Добијање броја различитих одељења под истим ходом у компанији према редоследу смањења.
SELECT hod, department, COUNT(`name`) FROM Employee_Department GROUP BY hod, department ORDER BY COUNT(name) DESC;
Извршење овог упита доноси следећи резултат -
ЦОУНТ ('име') | ход | одељење |
2 | ход1 | Услуга |
2 | ход2 | Финансије |
2 | ход3 | Тецх |
1 | ход5 | Подршка |
1 | ход3 | Услуга |
1 | ход3 | Финансије |
1 | ход5 | ХР |
Клаузула ХАВИНГ у СКЛ-у
Употреба клаузуле ХАВИНГ са клаузулом Гроуп Би ограничиће резултат упита на редове који имају вредност која је споменута клаузуром власништво.
Разумевање овог примера олакшаће -
Пример бр. 4
SELECT * FROM EMPLOYEE GROUP BY gender HAVING gender = “Female”;
Извршење овог упита доноси следећи резултат -
име | старост | телефон | пол | емаил |
Може | 22 | 456 | Женско | |
Ана | 45 | 644 | Женско | |
Саксије | 57 | 3456 | Женско | |
Рес | 45 | 456 | Женско | |
Ван | 55 | 7789 | Женско |
Пример бр. 5
SELECT * FROM Employee_Department GROUP BY department HAVING department = “Finance”;
Извршење овог упита доноси следећи резултат -
име | ход | одељење |
Може | ход2 | Финансије |
Саксије | ход2 | Финансије |
Тунг | ход3 | Финансије |
Закључак
Користећи клаузулу ГРОУП БИ са наредбом СЕЛЕЦТ, можемо груписати редове са истим вредностима, заједно са коришћењем збирних функција, константи и израза.
Препоручени чланци
Ово је водич за клаузулу ГРОУП БИ у СКЛ-у. Овдје смо расправљали о начину на који ГРОУП БИ клаузула ради у СКЛ-у уз помоћ таблица Примјери и Запослених. Можда ћете такође погледати следеће чланке да бисте сазнали више -
- СКЛ Инсерт Куери
- СКЛ Виевс
- База података у СКЛ-у
- Трансакције у СКЛ-у