"Пристрелка" к нужным данным
Как видно из рис. 9.2, средние продажи Фергюсона значительно выше, чем у двух других продавцов. Чтобы сравнить общие продажи по каждому продавцу, выполните следующий запрос:
SELECT Salesperson, SUM(TotalSale) FROM SALES GROUP BY Salesperson;
Результат этого запроса приведен на рис. 9.3.
Рис. 9.3. Общие продажи по каждому продавцу
Как и в случае среднего уровня продаж, Фергюсон имеет также самый высокий уровень общих продаж.
Предложение HAVING
Предложение HAVING позволяет еще лучше анализировать сгруппированные данные. Предложение HAVING (при условии) – это фильтр, который по своему действию похож на предложение WHERE, но, в отличие от предложения WHERE, HAVING работает не с отдельными строками, а с их группами. Проиллюстрируем действие предложения HAVING, используя следующий пример. Предположим, что менеджеру по продажам нужно сосредоточиться на работе других продавцов. Для этого ему необходимо исключить из общих данных количество продаж Фергюсона, поскольку его продажи находятся "в другой весовой категории". Чтобы сделать это, воспользуемся предложением HAVING:
SELECT Salesperson, SUM(TotalSale) FROM SALES GROUP BY Salesperson HAVING Salesperson <> 'Ferguson';
Результат этого запроса приведен на рис. 9.4. Строки, которые относятся к продавцу по фамилии Фергюсон, на экран не выводятся.
Рис. 9.4. Общие продажи по каждому продавцу за исключением Фергюсона