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

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

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

Агрегатные функции в SQL

Агрегатные функции в SQL

Всем доброго времени суток, и давайте c вами рассмотрим основные агрегатные функции SQL на примерах.

Допустим у нас есть стандартная таблица с товарами и их ценами:

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

и первые функции которые мы с вами рассмотрим будут доставать из базы минимальное и максимальное значение поля summa:

SELECT MIN(`summa`), MAX(`summa`) FROM `tovar`

Как видите запрос нам вернул минимальное(1000) и максимальное(10000) значения поля summa из таблицы tovar. Это мы сделали благодаря использованию агрегатных функций MIN() и MAX(), то есть минимум и максимум, аргументом которых является поле из которого мы достаем значение.

С этим я думаю все понятно, поехали дальше.

Следующая функция которую мы с вами рассмотрим будет касаться суммы всех значений поля.

SELECT SUM(`summa`) FROM `tovar`

Результатом данного запроса будет общая сумма значений(20500) поля summa. И здесь мы использовали функцию SUM() аргументом которой было поле summa.

Функция COUNT() считает количество строк и в качестве ее аргумента мы можем использовать либо название поля или '*'.Рассмотрим на следующем запросе:

SELECT COUNT(`summa`) FROM `tovar`
и 
SELECT COUNT(*) FROM `tovar`

как видите в обоих запросах нам вернулось значение 6, и это количество строк в таблице tovar.

Бывают ситуации когда нам необходимо получить среднее значение какого-нибудь поля.

Для этого существует функция AVG()

SELECT AVG(`summa`) FROM `tovar`

Результат 3416.6667 и мы можем это проверить используя уже полученные знания следующим запросом:

SELECT SUM(`summa`) / COUNT(`summa`) FROM `tovar`

Как видите результат у нас точно такой же 3416.6667 , то есть функция AVG() работает коректно.

И напоследок я хотел бы вам показать еще как избавиться от повторяющихся значений в полях. Допустим нам необходимо достать из таблицы tovar все категории цен , и как мы знаем у нас там есть повторяющиеся значения и для того чтобы их исключить. Существует специальное предложение DISTINCT, сразу оговорюсь это не функция.

Рассмотрим данное решение:

SELECT   DISTINCT  `summa` FROM `tovar`

Как видите нам из таблицы вернулись все наши категории цен товаров. И там нет повторяющихся значений!

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

Всего доброго и удачи!

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

Статьи

Комментарии

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

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

Реклама

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

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