Математические функции в 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;
Результат: Возвращает случайное число для каждой строки.
Округление суммы платежа:
Используйте ROUND(amount, 0)
для округления суммы до целого числа.
Поиск платежей с остатком от деления:
Используйте MOD(payment_id, 2)
для поиска чётных и нечётных платежей.
Вычисление квадратного корня:
Используйте SQRT(amount)
для анализа распределения платежей.
Сравнение значений:
Используйте GREATEST()
и LEAST()
для выбора максимального или минимального значения из нескольких столбцов.
Математические функции SQL позволяют выполнять вычисления, анализировать и преобразовывать числовые данные. Освойте эти функции для эффективной работы с числами в ваших SQL-запросах. Практикуйтесь на примерах из базы данных Sakila для закрепления навыков.