Увод у клаузулу ГРОУП БИ у СКЛ-у

За случајеве у којима морамо груписати редове с истом вриједношћу, класа клаузуле улази у слику. Клаузула ГРОУП БИ је наредба у СКЛ-у која ће извести ову операцију.

Важно је имати на уму да се клаузула ГРОУП БИ користи у изразу СЕЛЕЦТ у упиту након употребе клаузуле ВХЕРЕ.

Синтакса

Синтакса за клаузулу Гроуп Би је -

SELECT column_name1, column_name2, …
FROM table_name
WHERE conditions
GROUP By column_name1, column_name2, …
ORDER By column_name1, column_name2, …;

Објашњење синтаксе

  1. Изјава СЕЛЕЦТ - СКЛ наредба упита
  2. табле_наме - име табеле базе података на коју се позива
  3. услови - односе се на услове које треба проверити
  4. ГРОУП БИ - клаузула за груписање истих редова заједно
  5. НАРОЧИТЕ ПО - увијек се користи након групе Клаузулом за распоређивање редова по узлазном или силазном редослиједу. Ово је опционални услов.

Како клаузула ГРОУП БИ функционише у СКЛ-у?

Да бисмо разумели рад Групе Клаузулом, узмимо за помоћ пример. Размотрите табелу са именом као ЗАПОСЛЕНО која садржи основне детаље запосленика као што су име, старост, телефонски број, доб, пол, адреса, ИД е-поште итд.

Табела запослених

иместаросттелефонполемаил
Јохн23123Мушки
Може22456Женско
Ана45644Женско
Саксије573456Женско
Рес45456Женско
Тан782456Мушки
Ран345899Мушки
Ван557789Женско
Тунг325689Мушки
Цхунг214678Мушки

Узмите у обзир да ЗАПОСЛЕНИ имају око 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”;

Извршење овог упита доноси следећи резултат -

иместаросттелефонполемаил
Може22456Женско
Ана45644Женско
Саксије573456Женско
Рес45456Женско
Ван557789Женско

Пример бр. 5

SELECT * FROM Employee_Department GROUP BY department HAVING department = “Finance”;

Извршење овог упита доноси следећи резултат -

имехододељење
Можеход2Финансије
Саксијеход2Финансије
Тунгход3Финансије

Закључак

Користећи клаузулу ГРОУП БИ са наредбом СЕЛЕЦТ, можемо груписати редове са истим вредностима, заједно са коришћењем збирних функција, константи и израза.

Препоручени чланци

Ово је водич за клаузулу ГРОУП БИ у СКЛ-у. Овдје смо расправљали о начину на који ГРОУП БИ клаузула ради у СКЛ-у уз помоћ таблица Примјери и Запослених. Можда ћете такође погледати следеће чланке да бисте сазнали више -

  1. СКЛ Инсерт Куери
  2. СКЛ Виевс
  3. База података у СКЛ-у
  4. Трансакције у СКЛ-у

Категорија: