Инструкции INSERT, UPDATE и DELETE Оглавление Разбиение на группы

Агрегирующие функции

Для получения обобщающих значений в языке SQL имеются агрегирующие функции.
Агрегирующая функцияОписаниеПримерРезультат
SUM([DISTINCT] выражение)Сумма всех значений.SELECT SUM(gb_id) FROM gb274
AVG([DISTINCT] выражение)Среднее арифметическое всех значений.SELECT AVG(gb_id) FROM gb13.5
COUNT([DISTINCT] имя_столбца)Количество ненулевых значений.SELECT COUNT(name) FROM gb16
COUNT(*)Количество выбранных записей.SELECT COUNT(*) FROM gb20
MIN(выражение)Минимальное значениеSELECT MIN(quantity) FROM gb5
MAX(выражение)Максимальное значениеSELECT MAX(quantity) FROM gb20

Вы можете использовать также условия отбора. Например, результатом запроса SELECT COUNT(*) FROM gb WHERE gb_id>5 будет 18. В операторе WHERE использовать агрегирующие функции нельзя, т.е. запрос SELECT * FROM gb WHERE gb_id<AVG(gb_id) синтаксически неверен. Обычные функции, напрмер, косинус или синус можно. Запрос SELECT * FROM gb WHERE COS(gb_id)>0 является синтаксически верным, хотя и не имеет логического смысла. В агрегирующих функциях можно использовать выражения, например: SELECT AVG(2*quantity) FROM gb. При указании ключевого слова DISTINCT повторы не будут учитываться. Можно получать несколько значений одновременно, например: SELECT MIN(quantity) as min, MAX(quantity) as max FROM gb.

Упражнение

Напишите следующие SQL-запросы.
  1. Получить среднее количество выводимых сообщений на страницу для гостевых книг с идентификатором больше 5.
  2. Получить количество гостевых книг, где заполнено поле name.
  3. Получить количество гостевых книг с заполненными полями name, email, http.
  4. Получить максимальный идентификатор гостевой книги.