<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Данный курс - это более 20-ти часов видеоуроков по изучению PHP и MySQL. Ключевой момент курса - это создание движка для сайта с нуля. Каждая строчка комментируется. Практически для каждого урока имеются упражнения. Причём данные упражнения направлены не только на закрепление материала, но и на реализацию реальных задач, встающих перед Web-разработчиками при создании сайтов. После курса Вы сможете без проблем создавать движки для любых сайтов.

Также почти к каждому уроку идут упражнения для закрепления материала.

Просмотрев курс и выполнив упражнения, Вы сможете без проблем создавать функциональные движки для самых различных сайтов.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

GROUP BY в SQL

GROUP BY в SQL

Одной из важных команд в SQL является GROUP BY. Данная конструкция создана для выборки отдельных групп строк из таблицы, к каждой из которых применяются функции, указанные в SELECT (например, COUNT(), MIN() и так далее). Давайте разберём GROUP BY в SQL на конкретных примерах.

Допустим, у нас есть таблица супермаркетов:

  • id - уникальный идентификатор.
  • shop_id - уникальный идентификатор супермаркета.
  • price - цена на молоко.

Нам необходимо узнать среднюю цену на молоко у каждого супермаркета. Обратите внимание, что shop_id может повторяться (ведь есть сети супермакетов). Поэтому нам необходимо сделать группу по shop_id, и для каждой строки в этой группе вычислить среднюю цену.

Исходная таблица выглядит следующим образом:

id shop_id price
1 1 40
2 2 36
3 1 35
4 3 38
5 4 39
6 3 38
7 3 35

Для решения нашей задачи мы используем GROUP BY:

SELECT `shop_id`, AVG(`price`) FROM `table` GROUP BY `shop_id`

В результате получится следующее:

shop_id AVG(`price`)
1 37.5
2 36.0
3 37.0
4 39.0

Таким образом, мы узнали среднюю цену в конкретной сети супермаркетов (или в одиночном магазине).

Ещё одним очень частым применением GROUP BY в SQL является выборка уникальных записей из таблиц. В предыдущем примере Вы заметили, что в результирующей выборке нет повторяющихся shop_id, тогда как в исходной таблице они были.

Допустим, у нас есть таблица с пользователями:

  • id - уникальный идентификатор.
  • email - e-mail пользователя.
  • hash - уникальный хэш пользователя.

И перед нами встала задача выбрать уникальных пользователей, причём именно уникальных людей, а не уникальных учётных записей. Ведь у одного человека может быть и 100 аккаунтов с разными e-mail и, разумеется, id. А hash - это некая строка, характеризующая его как уникального человека.

Таким образом, нам надо выбрать все записи с уникальным hash. Для этого опять же используется GROUP BY:

SELECT * FROM `table` GROUP BY `hash`

В результате, будут извлечены только уникальные hash, то есть 2 одинаковых hash в результирующей выборке Вы не увидите.

Вот таких два практических примера использования GROUP BY в SQL мы разобрали.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (6):

lev_100rus lev_100rus 09.09.2013 16:07:34

У вас пропущена запятая в строке: "Допустим у нас есть таблица с пользователями:" Хорошие статьи. Пишите по SQL по-больше! Там много всяких встроенных функций, про которые не плохо бы рассказать

Ответить

Admin Admin 10.09.2013 11:06:21

Спасибо, исправлено!

Ответить

Vano Vano 11.09.2013 12:58:22

И перед намИ

Ответить

Admin Admin 11.09.2013 18:08:21

Спасибо, исправил.

Ответить

Silver78 Silver78 11.09.2013 22:13:37

Михаил, а что это за хеш пользователей? Можно чуточку поподробнее, а то не совсем понятна природа происхождения этого хеша? :)

Ответить

Admin Admin 12.09.2013 20:20:34

Обыкновенный хеш, сгенерированный специально для этого пользователя.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.