Вы можете использовать базовые SQL-запросы для извлечения данных из базы данных, но это часто не обеспечивает достаточного интеллекта для удовлетворения бизнес-требований. SQL также предоставляет возможность группировать результаты запроса на основе атрибутов на уровне строки, чтобы применять агрегированные функции, используя предложение GROUP BY. Рассмотрим, например, таблицу данных заказа, состоящую из следующих атрибутов:
- Номер заказа - числовое значение, однозначно определяющее каждый заказ. Это поле является основным ключом для базы данных.
- Salesperson - текстовое значение, указывающее имя продавца, который продал продукты. Это поле является внешним ключом к другой таблице, содержащей информацию о персонале.
- Пользовательский ИД - числовое значение, соответствующее номеру счета клиента. Это поле также является внешним ключом, ссылающимся на таблицу, содержащую информацию об учетной записи клиента.
- доходов - числовое значение, соответствующее долларовой сумме продажи.
Когда приходит время проводить обзоры производительности для продавцов, в таблице заказов содержится ценная информация, которая может быть использована для этого обзора. Оценивая Jim, вы можете, например, написать простой запрос, который извлекает все записи продаж Jim:
ВЫБРАТЬ *
ОТ заказов
ГДЕ Продавец LIKE 'Jim'
Это позволит получить все записи из базы данных, соответствующие продажам, сделанным Джим: Доход клиента CustomerID SalesID
12482 Джим 182 40000
12488 Jim 219 25000
12519 Джим 137 85000
12602 Джим 182 10000
12741 Jim 155 90000
Вы можете просмотреть эту информацию и выполнить некоторые ручные вычисления для получения статистики производительности, но это будет утомительной задачей, которую вам придется повторить для каждого продавца в компании. Вместо этого вы можете заменить эту работу одним запросом GROUP BY, который вычисляет статистику для каждого продавца в компании. Вы просто пишете запрос и указываете, что база данных должна группировать результаты на основе поля Salesperson. Затем вы можете использовать любую из агрегатных функций SQL для выполнения вычислений по результатам. Вот пример. Если вы выполнили следующую инструкцию SQL: SELECT Sales, SUM (доход) AS 'Total', MIN (доход) AS 'Smallest', MAX (доход) AS 'Largest', AVG (доход) AS 'Average', COUNT (доход) AS 'Number'
ОТ заказов
ГРУППА ПО ПРОДАЖЕ
Вы получите следующие результаты: Суммарный наименьший средний размер продавца
Джим 250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
Как вы можете видеть, эта мощная функция позволяет создавать небольшие отчеты из SQL-запроса, предоставляя ценную бизнес-аналитику менеджеру, проводящему обзоры производительности. Предложение GROUP BY часто используется в базах данных для этой цели и является ценным инструментом в сумке трюков DBA.