Агрегирующие функции
Для получения обобщающих значений в языке SQL имеются агрегирующие функции.
Агрегирующая функция | Описание | Пример | Результат |
SUM([DISTINCT] выражение) | Сумма всех значений. | SELECT SUM(gb_id) FROM gb | 274 |
AVG([DISTINCT] выражение) | Среднее арифметическое всех значений. | SELECT AVG(gb_id) FROM gb | 13.5 |
COUNT([DISTINCT] имя_столбца) | Количество ненулевых значений. | SELECT COUNT(name) FROM gb | 16 |
COUNT(*) | Количество выбранных записей. | SELECT COUNT(*) FROM gb | 20 |
MIN(выражение) | Минимальное значение | SELECT MIN(quantity) FROM gb | 5 |
MAX(выражение) | Максимальное значение | SELECT MAX(quantity) FROM gb | 20 |
Вы можете использовать также условия отбора. Например, результатом запроса 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.