Агрегатные функции
В статье о группировках мы обсудили, что при использовании оператора GROUP BY мы можем использовать агрегатные функции. Давайте поговорим о них подробнее 🐳.
Агрегатная функция – это функция, которая выполняет вычисление на наборе значений и возвращает одиночное значение.
Общая структура запроса с агрегатной функцией
SELECT [литералы, агрегатные_функции, поля_группировки] FROM имя_таблицы GROUP BY поля_группировки;
Например, запрос с использованием агрегатной функции AVG может выглядеть так:
SELECT home_type, AVG(price) as avg_price FROM Rooms GROUP BY home_type
Описание агрегатных функций
Агрегатные функции применяются для значений, не равных NULL. Исключением является функция COUNT(*).
Примеры
-
Найдём количество каждого вида жилья и отсортируем полученный список по убыванию:
SELECT home_type, COUNT(*) as amount FROM Rooms GROUP BY home_type ORDER BY amount DESC
-
Для каждого жилого помещения найдём самую позднюю дату выезда (поле end_date)
SELECT room_id, MAX(end_date) AS last_end_date FROM Reservations GROUP BY room_id