СКЛ ГРОУП БИ клаузула се користи за распоређивање идентичних података у групе на основу једне или више колона. Обично се користи са агрегатним функцијама као што су ЦОУНТ() СУМ() АВГ() МАКС() и МИН() за обављање прорачуна за сваку групу података.
Пример: Прво ћемо створити демо СКЛ базу података и табелу на којој ћемо користити команду ГРОУП БИ.
упит:
SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;Излаз:
Синтакса:
SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;- агрегатна_функција: функција која се користи за агрегацију нпр. СУМ() АВГ() ЦОУНТ().
- табле_наме: назив табеле из које се бирају подаци.
- стање: Опциони услов за филтрирање редова пре груписања (користи се са ВХЕРЕ).
- колона1 колона2: Колоне на које се примењује груписање.
Примери ГРОУП БИ
Претпоставимо да имамо Студентски сто. Убацићемо неке узорке података у ову табелу, а затим ћемо извршити операције користећи ГРОУП БИ да бисмо разумели како групише редове на основу колоне и агрегира податке.
Пример 1: Груписање по једној колони
Када групишемо по једној колони, редови са истом вредношћу у тој колони се комбинују. На пример, груписање по предмету показује колико је ученика уписано у сваки предмет.
упит:
SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;Излаз:
Објашњење: Сваки предмет се појављује два пута у табели, тако да је број за енглеску математику и науку 2.
Пример 2: Груписање по више колона
Коришћење ГРОУП БИ са више колона групише редове који деле исте вредности у тим колонама. На пример, груписање по предмету и години комбинује редове са истим паром предмет-година и можемо избројати колико ученика спада у сваку групу.
упит:
SELECT subject year COUNT(*) FROM Student GROUP BY subject year;Излаз:
Објашњење: Ученици са истим предметом и годином групишу се заједно. Пошто се сваки пар предмет-година појављује два пута, број је 2 за сваку групу.
Клаузула ХАВИНГ у клаузули ГРОУП БИ
Клаузула ХАВИНГ се користи за филтрирање резултата након груписања, посебно када се ради са агрегатним функцијама као што су СУМ() ЦОУНТ() или АВГ(). За разлику од ВХЕРЕ примењује услове на груписане податке.
Пример 1: Филтрирајте према укупној плати
У овом упиту групишемо запослене по именима и приказујемо само оне чија је укупна плата већа од 50000.
SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; Излаз
Објашњење : У резултату се појављују само запослени чија укупна плата прелази 50000.
јава итератор за мапу
Пример 2: Филтрирајте према просечној плати
У овом упиту групишемо запослене по годинама и приказујемо само оне старосне групе у којима је просечна плата изнад 60000.
SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;Излаз:
Објашњење: Овај упит групише запослене по годинама и израчунава просечну плату за сваки узраст. Приказују се само оне старосне групе код којих је просечна плата већа од 60000.
Креирај квиз