Суммируем и не только. Агрегатные функции в SQL - это просто.
Рассмотрим базовые агрегатные функции COUNT, SUM, MIN, MAX и AVG в SQL и как ими пользоваться в написании запросов.
Продолжаем нашу серию микро-уроков посвящённых основам языка SQL начатую здесь. Если вы прчли предыдущие темы и выполнили задания на SQLtest.online то вы уже знаете несколько английских слов и можете уверенно выбирать данные из таблиц SELECT
, сортировать ORDER BY
, ограничивать количество строк в выдаче LIMIT
, OFSET
и выполнять базовые вычисления над данными. Этот урок посвятим действиям над колонками в таблице и снова разучим несколько новых английских слов. Для того чтобы подсчитать количество строк в таблице - нужно знать слово COUNT - счёт(подсчёт) и написать следующий простой запрос:
Обратите внимание что COUNT
- это функция и в скобках указывается имя колонки для которой мы считаем количество значений. Если в одной из строк значение отсутствует (NULL) то такая строка не будет учтена в общем количестве!
Если нужно получить количество строк (включая NULL - значения), то вместо указания имени колонки впишем * Вот так:
Для получения более читаемого результата применим материал предыдущего урока и дадим псевдоним вычисляемой колонке:
Посмотрите - так горяздо лучше! Сразу понятно о чём идёт речь. Кстати я всегда советую использовать псевдонимы (алиасы) для результатов любых вычислений:
Таким образом мы познакомились с функцией которая вычисляет значение из данных нескольких строк таблицы. Такие функции в SQL называются агрегатными.
Агрегатные функции прекрасно сочетаются с условиями WHERE. Например мы можем подсчитать количество отличников:
Как работает этот запрос? Как и в обычном SELECT
база данных сначала выберет из таблицы все строки соответствующие условию, а затем выполнит функцию нод этими строками. В итоге мы получим следующий результат:
Кроме COUNT язык SQL предлагает нам ещё несколько базовых агрегатных функций:
SUM
- сумма чисел в столбцеMIN
- минимальное значение - работает не только с числами но и со строками и датами (для строк вернет первую из отсортированных по алфавиту строк, для дат самую рвннюю)MAX
- максимальное значение для чисел (последняя по алфавиту строка и самая поздняя дата)AVG
- среднее значение так же как и SUM работает только с числами.
Приведём пример использования этих функций:
Сумма баллов полученных студентом:
Минимальный, максимальный и средний балл по физике:
Прежде чем углубиться в изучение агрегатных функций я советую вам закрепить уже изученный материал решив первые задачи из категории "Агрегатные функции" на сайте SQLTest.online
454 открытий4К показов