К списку
SQL и базы данныхMiddleТехническое

Основные типы функций в SQL и их назначение

Краткий ответ

В SQL существуют агрегатные и скалярные функции. Агрегатные обрабатывают группы строк и возвращают одно значение, а скалярные работают с отдельными значениями, выдавая результат для каждой строки.

Развёрнуто

Краткий ответ

SQL функции делятся на две основные категории: агрегатные и скалярные. Агрегатные функции, такие как SUM(), AVG(), COUNT(), MAX() и MIN(), обрабатывают набор строк и возвращают одно итоговое значение. Скалярные функции, например, UPPER(), LOWER(), LEN(), ROUND(), GETDATE(), работают с каждым отдельным значением и возвращают результат для каждой строки.


Как это работает

Агрегатные функции применяются для вычислений по множеству строк и часто используются с оператором GROUP BY. Они позволяют получить сводные данные — сумму, среднее, количество и т.д.

Скалярные функции обрабатывают отдельные значения в каждой строке, изменяя или вычисляя новые данные на уровне поля. Они возвращают по одному значению на каждую входящую строку.

Тип функции Принцип работы Примеры
Агрегатные Обрабатывают множество строк SUM(), AVG(), COUNT()
Скалярные Работают с отдельным значением UPPER(), LEN(), ROUND()

Пример

SELECT
  COUNT(*) AS total_orders,          -- агрегатная функция
  MAX(order_amount) AS max_amount,   -- агрегатная функция
  UPPER(customer_name) AS name_upper  -- скалярная функция
FROM orders
WHERE order_date > '2023-01-01';

В этом запросе агрегатные функции COUNT() и MAX() подсчитывают количество и максимальную сумму заказов, а скалярная UPPER() преобразует имена клиентов к верхнему регистру.

Что важно знать на собеседовании

  • Агрегатные функции сводят множество строк к одному значению.
  • Скалярные функции возвращают результат для каждой отдельной строки.
  • Часто агрегатные функции используются с GROUP BY для группировки данных.
  • Знание функций помогает эффективно писать тесты для проверки корректности запросов и данных.
  • Некоторые СУБД расширяют стандартный набор функций, важно понимать их особенности.

Тема: SQL и базы данных | Уровень: middle