Group by в sql

GROUP BY в SQL

Відео: SQL: Group By, Having, Min, Max Sum

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

Припустимо, у нас є таблиця супермаркетів:

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

Нам необхідно дізнатися середню ціну на молоко у кожного супермаркету. Зверніть увагу, що shop_id може повторюватися (адже є мережі супермакетів). Тому нам необхідно зробити групу по shop_id, і для кожного рядка в цій групі обчислити середню ціну.

Вихідна таблиця виглядає наступним чином:

id shop_id price
1140
2236
3135
4338
5439
6338
7335



Для вирішення нашої задачі ми використовуємо GROUP BY:

Відео: SQL GROUP BY

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

В результаті вийде наступне:

shop_id AVG ( `price`)
137.5
236.0
337.0
439.0

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

Відео: SQL для початківців. SQL запит SELECT GROUP BY: угруповання даних вибірки в базах даних SQLite




Ще одним дуже частим застосуванням 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 ми розібрали.

Поділися в соціальних мережах:

Схожі
Команда sc - управління службами.Команда sc - управління службами.
Команда nbtstat - відображення статистики та поточних підключень nbt (netbios через tcp / ip)Команда nbtstat - відображення статистики та поточних підключень nbt (netbios через tcp / ip)
Як дізнатися кількість записів в sql-вибірціЯк дізнатися кількість записів в sql-вибірці
Створення тригерів в mysqlСтворення тригерів в mysql
Team group: msata ssd-накопичувачі mp1Team group: msata ssd-накопичувачі mp1
Тематичний флеш-брелок від team groupТематичний флеш-брелок від team group
Huntkey es 90w ultra edition - універсальний блок живлення для ноутбуківHuntkey es 90w ultra edition - універсальний блок живлення для ноутбуків
SecureitSecureit
Оператор between в sql.Оператор between в sql.
Як зробити багаторівневе меню-аккордіон на css3.Як зробити багаторівневе меню-аккордіон на css3.
» » Group by в sql