Похожие презентации:
Группировка данных
1.
Группировка данныхАгрегирующие функции: COUNT,
MIN, MAX, AVG
Группировка записей: GROUP BY
2.
Функции агрегацииhttps://dev.mysql.com/doc/refman/5.7/en/aggregatefunctions.html
3.
Агрегирующие функции: COUNT,MIN, MAX, AVG
Получаем
максимальную цену:
Получаем
минимальную цену:
4.
Особенность агрегирующихфункций
• Мы можем получить только обобщенные
данные , без конкретики по полям.
• В запросах агрегации мы не можем
выводить несколько полей.
• Нельзя использовать различные поля
совместно с агрегированными данными.
5.
6.
Можно одновременно использоватьнесколько функций агрегации
7.
Агрегирующие функции могутбыть частью аргумента:
8.
Переименовываем возвращаемыеполя с помощью конструкции AS:
9.
COUNT(*) – возвращает количествовсех записей.
10.
COUNT([поле]) – возвращаетколичество записей в конкретном
поле
11.
12.
SUM([название поля]) - суммирует всезначения в поле.
13.
• COUNT(*) – нужно посчитать все записи,независимо от того, что в них содержится.
• COUNT([название поля]) – количество
записей по указанному полю; записи,
содержащие NULL, не учитываются.
• SUM([название поля]) - суммирует все
значения в поле.
14.
Вычислим стоимость товаров наскладе
15.
Группировка по числовым полям• Конструкция GROUP_BY [поле] группирует
записи по полю, которое указано после
ключевого слова.
• Особенность применения: мы выводим то
поле (в SELECT), по которому группируем.
16.
Получим все категории, содержащиеся втаблице:
17.
Особенность применения: мы выводим тополе (в SELECT), по которому группируем.
18.
Необходимые поля можновыводить в условиях:
Обратите внимание на то,
что группировка производится после фильтрации!
19.
К полям, по которым мы не производимгруппировку, можно помещать в SELECT,
применяя к ним функции агрегации:
20.
Сколько единиц товаров в магазине наданный момент:
21.
Получим общую стоимость товаров сразбивкой по категориям:
22.
Отсортируем данные по сумметоваров:
23.
Группировка по текстовым полям24.
Выясним, сколько пользователейзарегистрировано в разрезе по полу:
25.
Проведем группировку сразу по двум полям:получим
количество
мужчин
и
женщин
определенного
возраста:
26.
Проведем группировку сразу по двумполям
и
получим
только
несовершеннолетних пользователей
27.
HAVING и WHERE –фильтр касается только исходных
данных, а не итоговой таблицы.
28.
29.
30.
Длятого,
чтоб
вместо WHERE
отсеять результаты после
группировки
используем конструкцию HAVING.
31.
Полезные замечания:• конструкция HAVING выполняет ту же
функцию,
что
и
WHERE,
только
применительно к результирующе таблице;
• На практике в блоке WHERE лучше
использовать названия столбцов из
реальной таблицы, а для группировок
лучше брать другие имена, чтобы не
возникло путаницы.
32.
Более грамотное оформлениезапроса: