Можете да използвате основни SQL заявки за извличане на данни от база данни, но това често не осигурява достатъчно интелигентност, за да отговарят на бизнес изискванията. SQL също ви дава възможност да групирате резултатите от заявките въз основа на атрибути на ниво ред, за да приложите агрегирани функции, като използвате клаузата GROUP BY. Помислете например върху таблица с данни за поръчки, състояща се от следните атрибути:
- OrderID - цифрова стойност, идентифицираща уникално всяка поръчка. Това поле е основният ключ за базата данни.
- Продавач - текстова стойност, даваща името на продавача, който е продал продуктите. Това поле е чужд ключ на друга таблица, съдържаща информация за персонала.
- Клиентски номер - цифрова стойност, съответстваща на номера на клиентската сметка. Това поле е и чужд ключ, като се позовава на таблица, съдържаща информация за клиентската сметка.
- приход - цифрова стойност, съответстваща на доларовата стойност на продажбата.
Когато настъпи време за провеждане на ревюта за производителността, търговската таблица съдържа ценна информация, която може да се използва за този преглед. Когато оценявате Джим, бихте могли, например, да напишете проста заявка, която извлича всички записи на продажбите на Джим:
SELECT *
FROM Поръчки
КЪДЕ Продавачът LIKE 'Jim'
Това ще извлече всички записи от базата данни, съответстващи на продажбите, направени от Jim: Продаж
12482 Джим 182 40000
12488 Джим 219 25000
12519 Джим 137 85000
12602 Джим 182 10000
12741 Джим 155 90000
Можете да прегледате тази информация и да извършите някои ръчни изчисления, за да излезете със статистически данни за ефективността, но това би било досадна задача, която ще трябва да повторите за всеки продавач в компанията. Вместо това можете да замените тази работа с една заявка GROUP BY, която изчислява статистически данни за всеки продавач в компанията. Просто пишете заявката и уточнете, че базата данни трябва да групира резултатите въз основа на полето Salesperson. След това можете да използвате която и да е от SQL агрегатните функции, за да извършите изчисления върху резултатите. Ето един пример. Ако сте изпълнили следния SQL израз: SELECT Собственик на продажбите, SUM (Приходи) AS Общо, MIN (Приходи) AS "Най-малки", MAX (Приходи) AS "Най-голям", AVG (Приходи)
FROM Поръчки
ГРУПА от продавача
Ще получите следните резултати: Собственик на продажбите Най - малък най - голям среден брой
Джим 250000 10000 90000 50000 5
Мери 342000 24000 102000 57000 6
Боб 118000 4000 36000 39333 3
Както можете да видите, тази мощна функция ви позволява да генерирате малки отчети в рамките на SQL заявка, предоставяйки ценна бизнес разузнаване на мениджъра, провеждащ проверките на ефективността. Клаузата GROUP BY често се използва в базите данни за тази цел и е ценен инструмент в чантата на трикове на DBA.