Анализ данных • 28 октября 2025 • 5 мин чтения

Основные функции в SQL: какие изучить в самом начале

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

Введение в SQL: зачем изучать функции

Специалисты, которые только знакомятся с SQL, начинают с простых запросов вроде «SELECT name, age FROM users;». Но рано или поздно возникает вопрос: как, например, посчитать возраст пользователя по дате рождения, привести имена к единому формату или посчитать среднюю сумму покупок?

Здесь на помощь приходят функции SQL — встроенные инструменты, которые позволяют делать вычисления прямо в запросе. Поэтому важно освоить их как можно раньше.

Курс «SQL для работы с данными и аналитики» поможет разобраться, как работать с базами данных, выгружать и обрабатывать информацию. Студенты тренируются в интерактивном тренажёре и выполняют два практических проекта с реальными данными.

Основные категории функций в SQL

Функции SQL удобно разделить по типам. Далее разберём их подробнее.

  • Текстовые — для работы со строками: чистка, объединение, поиск.
  • Числовые — всё, что связано с арифметикой и округлением.
  • Дата и время — функции, которые помогают оперировать датами, интервалами и временем.
  • Агрегатные — для суммирования, подсчёта, поиска средних значений.
  • Логические и условные — для проверки условий и обработки NULL-значений.
Функции в SQL делятся по типам

Текстовые функции: работа со строками

В повседневных запросах текст встречается постоянно: имена пользователей, названия товаров, адреса, почты. И часто эти данные нужно немного «причесать» — например, убрать пробелы, привести к нижнему регистру, соединить с чем-то ещё.

Вот несколько полезных функций SQL:

  • CONCAT (a, b, …) — объединяет строки;
  • LOWER (str) / UPPER (str) — приводит всю строку к нижнему или верхнему регистру;
  • TRIM (str) — убирает пробелы в строке в начале и конце;
  • SUBSTRING (string, start_position, length) — достаёт часть строки;
  • REPLACE (input_string, substring, new_substring) — заменяет одну подстроку на другую.

Допустим, есть таблица employees (name, title). Можно объединить имя и должность:

SELECT CONCAT (name, ' — ', title) AS label
FROM employees;

Числовые функции: вычисления и преобразования

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

Основные числовые функции SQL:

  • ROUND (x, n) — математически округляет число до n знаков;
  • CEIL (x) / FLOOR (x) — округление вверх/вниз;
  • ABS (x) — абсолютное значение;
  • POWER (x, y) — возведение в степень;
  • CAST (expr AS type) — приведение типов.

Например, нужно рассчитать итоговую стоимость заказа с налогом:

SELECT
amount,
tax_rate,
ROUND(amount * (1 + tax_rate), 2) AS total
FROM sales;

Дата и время: функции для работы с временными данными

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

  • NOW () / CURRENT_DATE — текущее время или дата;
  • EXTRACT (part FROM date) — достаёт часть даты, например EXTRACT (YEAR FROM order_date);
  • DATE_TRUNC ('month', timestamp) — обрезает дату до любого диапазона, который указан в первом аргументе (например, до месяца);
  • AGE (date1, date2) — разница между двумя датами.

Представим, что нужно посчитать, сколько дней в среднем проходит между заказом и доставкой:

SELECT AVG (ship_date — order_date) AS avg_days
FROM orders
WHERE ship_date IS NOT NULL;

Агрегатные функции: суммирование и группировка данных

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

  • COUNT() — количество записей;
  • SUM() — сумма значений;
  • AVG() — среднее значение;
  • MIN() / MAX() — минимум и максимум.

Например, нужно посчитать сумму продаж по каждому продавцу:

SELECT
salesperson,
SUM(amount) AS total_sales
FROM sales
GROUP BY salesperson
ORDER BY total_sales DESC;

Логические функции и условные выражения

Иногда запрос должен выполнять определённое условие: например, если скидка не указана — подставить ноль, а если клиент покупает на крупную сумму — присвоить ему статус «VIP». Для этого есть функции SQL:

  • CASE WHEN… THEN… ELSE… END — универсальное условие;
  • COALESCE (a, b, c) — возвращает первое не-NULL значение;
  • NULLIF (a, b) — возвращает NULL, если a = b.

Например:

SELECT
name,
CASE
WHEN discount >= 0.2 THEN 'Премиум-клиент'
WHEN discount >= 0.1 THEN 'Постоянный клиент'
ELSE 'Обычный клиент'
END AS category
FROM customers;

Советы для эффективного применения функций SQL на старте

  • Учитывайте типы данных. Ошибки чаще всего происходят из-за того, что текст пытаются сложить с числом, а дату — с текстом. Приводите типы явно через CAST.
  • Не злоупотребляйте функциями SQL в фильтрах. Если применить функцию к столбцу в WHERE, база не сможет использовать индекс. Лучше обработать данные заранее.
  • Разбивайте сложные запросы. Если выражение получается громоздким, используйте WITH (CTE). Это поможет понять, что происходит на каждом шаге.
  • Проверяйте результат на примерах. Перед тем как применять запрос к миллионам строк, проверьте его на небольшом подмножестве данных.
  • Пишите понятно. Используйте понятные алиасы и комментарии, особенно в длинных запросах.

Совет эксперта

Александр Сушков

Функций огромное количество, в статье представлены не все. Помните, что практически для каждой задачи есть своя функция. А ещё — что в разных диалектах SQL названия и поведение некоторых функций могут немного отличаться. Например, в MySQL используется SUBSTRING (str, pos, len), а в PostgreSQL — SUBSTRING (str FROM pos FOR len). Поэтому при изучении и применении функций стоит сверяться с документацией конкретной СУБД.
Статью подготовили:
Александр Сушков
Яндекс Практикум
Преподаватель и автор курсов, аналитик данных, эксперт по SQL
Надежда Низамова
Яндекс Практикум
Редактор
Анастасия Павлова
Яндекс Практикум
Иллюстратор

Подпишитесь на наш ежемесячный дайджест статей —
а мы подарим вам полезную книгу про обучение!

Поделиться
Начните курс бесплатно и оплатите его до 30 ноября со скидкой 20%
Mon Nov 17 2025 17:33:18 GMT+0300 (Moscow Standard Time)