SQL код скопирован в буфер обмена
Этот урок по основным математическим функциям в SQL — отличный справочник для всех, кто хочет уверенно работать с числовыми данными в базах данных. Подробные объяснения и практические примеры на базе Sakila помогут освоить функции ABS, CEIL, FLOOR, ROUND, POWER, SQRT, MOD, SIGN, GREATEST, LEAST и RAND. Освоив эти SQL-функции, вы сможете эффективно анализировать, преобразовывать и вычислять числовые данные в своих SQL-запросах. Идеально подходит для начинающих и тех, кто хочет углубить свои знания SQL.
EN PT

Урок 3.3: Основные математические функции в SQL

Математические функции в SQL используются для выполнения различных вычислений над числовыми данными. Они позволяют округлять значения, находить минимальные и максимальные значения, вычислять суммы, средние, остатки от деления и многое другое. В этом уроке рассмотрены наиболее часто используемые математические функции с примерами на базе данных Sakila.

Общие математические функции

ABS() — Возвращает абсолютное значение числа.

Синтаксис:

ABS(number)

Пример:

SELECT ABS(amount - 5) AS abs_difference
FROM payment
LIMIT 3;

Результат: Возвращает абсолютную разницу между значением amount и 5.

CEIL() / CEILING() — Округляет число в большую сторону (до ближайшего целого).

Синтаксис:

CEIL(number)
CEILING(number)

Пример:

SELECT CEIL(amount) AS rounded_up
FROM payment
LIMIT 3;

Результат: Округляет значение amount вверх до ближайшего целого.

FLOOR() — Округляет число в меньшую сторону (до ближайшего целого).

Синтаксис:

FLOOR(number)

Пример:

SELECT FLOOR(amount) AS rounded_down
FROM payment
LIMIT 3;

Результат: Округляет значение amount вниз до ближайшего целого.

ROUND() — Округляет число до заданного количества знаков после запятой.

Синтаксис:

ROUND(number, decimals)

Пример:

SELECT ROUND(amount, 1) AS rounded_amount
FROM payment
LIMIT 3;

Результат: Округляет значение amount до одного знака после запятой.

POWER() / POW() — Возводит число в степень.

Синтаксис:

POWER(number, exponent)
POW(number, exponent)

Пример:

SELECT POWER(amount, 2) AS squared_amount
FROM payment
LIMIT 3;

Результат: Возводит значение amount в квадрат.

SQRT() — Возвращает квадратный корень числа.

Синтаксис:

SQRT(number)

Пример:

SELECT SQRT(amount) AS sqrt_amount
FROM payment
LIMIT 3;

Результат: Возвращает квадратный корень из значения amount.

MOD() — Возвращает остаток от деления одного числа на другое.

Синтаксис:

MOD(dividend, divisor)

Пример:

SELECT MOD(payment_id, 5) AS mod_result
FROM payment
LIMIT 3;

Результат: Возвращает остаток от деления payment_id на 5.

SIGN() — Возвращает знак числа (-1, 0 или 1).

Синтаксис:

SIGN(number)

Пример:

SELECT SIGN(amount - 5) AS sign_value
FROM payment
LIMIT 3;

Результат: Возвращает -1, если разница отрицательная, 0 — если равна нулю, 1 — если положительная.

GREATEST() — Возвращает наибольшее из переданных значений (MySQL, PostgreSQL).

Синтаксис:

GREATEST(value1, value2, ...)

Пример:

SELECT GREATEST(amount, 5) AS max_value
FROM payment
LIMIT 3;

Результат: Возвращает большее из двух значений: amount или 5.

LEAST() — Возвращает наименьшее из переданных значений (MySQL, PostgreSQL).

Синтаксис:

LEAST(value1, value2, ...)

Пример:

SELECT LEAST(amount, 5) AS min_value
FROM payment
LIMIT 3;

Результат: Возвращает меньшее из двух значений: amount или 5.

RAND() — Возвращает случайное число от 0 до 1.

Синтаксис:

RAND()

Пример:

SELECT RAND() AS random_value
FROM payment
LIMIT 3;

Результат: Возвращает случайное число для каждой строки.

Практическое применение

  1. Округление суммы платежа: Используйте ROUND(amount, 0) для округления суммы до целого числа.

  2. Поиск платежей с остатком от деления: Используйте MOD(payment_id, 2) для поиска чётных и нечётных платежей.

  3. Вычисление квадратного корня: Используйте SQRT(amount) для анализа распределения платежей.

  4. Сравнение значений: Используйте GREATEST() и LEAST() для выбора максимального или минимального значения из нескольких столбцов.

Основные выводы из этого урока

Математические функции SQL позволяют выполнять вычисления, анализировать и преобразовывать числовые данные. Освойте эти функции для эффективной работы с числами в ваших SQL-запросах. Практикуйтесь на примерах из базы данных Sakila для закрепления навыков.