Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

Group by sql

Group by sql

Всем привет в данной статье мы с вами рассмотрим предложение GROUP BY для чего оно служит и как им пользоваться.

Таблица которую мы будем использовать

id				tovar					summa
========================================================
1     				tovar1  				1000
2    				tovar2  				10000
3    				tovar3  				3000
4   				 tovar4  				1000
5    				tovar5  				3000
6    				tovar6  				3500
=========================================================

И давайте сразу рассмотрим запрос с использованием GROUP BY, допустим мы хотим посчитать количество товаров на каждую из ценовых категорий:

SELECT `summa`, COUNT(`summa`) AS count FROM `tovar` GROUP BY `summa`

Результатом нам вернулось

summa     count
1000        2
3000        2
3500        1
10000      1

мы получили, то что хотели! Давайте подробнее разберем наш запрос.

В первой части запроса мы указали что нам нужно поле summa и количество строк которому мы присвоили псевдоним count, то есть количество строк у нас будет доставаться через поле count. Во второй части запроса мы указали GROUP BY (группировать строки) , и указали поле summa.

Что тут следует учитывать!

SELECT `summa`,`tovar`, COUNT(`summa`) AS count FROM `tovar` GROUP BY `summa`

результат:

summa      	tovar           count
1000		tovar1	       2
3000		tovar3	       2
3500		tovar6             1
10000		tovar2             1

этот запрос хоть и вернет нам значение, но он будет не коректен, так как поле tovar не указано в нашей группировке полей GROUP BY и следовательно на каждую группу суммы у нас вернется, только одно значение поля tovar учитываю, то что значения поля tovar в нашей таблице не повторяются. Но мы можем записать наш запрос так:

SELECT `summa`,`tovar`, COUNT(`summa`) AS count FROM `tovar` GROUP BY `summa`,`tovar`

Результат:

summa      	tovar           count
1000		tovar1	       1
1000		tovar4	       1
3000		tovar3	       1
3000		tovar5	       1
3500		tovar6             1
10000		tovar2             1

Как видите теперь группировка полей произошла у нас по полю `tovar`, потому что оно указанно последним аргументом предложения GROUP BY. Отсюда можно сделать простой вывод ,в качестве аргумента группировки строк нужно указывать одно поле.

К примеру на ничто не мешает посчитать общую сумму, количество, среднее значение и т.п .

Рассмотрим следующий запрос:

SELECT `summa`, COUNT(`summa`) AS count,SUM(`summa`) AS sum,AVG(`summa`) AS avg FROM `tovar` GROUP BY `summa`

В результате мы получили количество, общую сумму и среднее значение у каждой ценовой категории.

Вот и все дорогие друзья что я вам хотел рассказать о группировке строк в SQL.

Надеюсь вам было интересно и вы смогли узнать что то новое.

Удачи!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm