В чем разница между агрегатной и скалярной функцией

«В чем разница между агрегатной и скалярной функцией» — вопрос из категории Базы данных, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Агрегатные и скалярные функции работают с данными по-разному:

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

  • Обрабатывают набор значений и возвращают одно результирующее значение
  • Работают с группами строк (например, GROUP BY)
  • Примеры: SUM(), COUNT(), AVG(), MAX(), MIN()
SELECT AVG(price) FROM products;

Скалярные функции:

  • Работают с каждым значением отдельно
  • Применяются к каждой строке результата
  • Примеры: UPPER(), ROUND(), CONCAT(), DATE_FORMAT()
SELECT UPPER(name) FROM users;

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