Трусость — мать жестокости (М. Монтень).

MySQL. Функция ABS

1 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
1 августа 2019
MySQL. Математические функции
Описание: в этой статье вы узнаете, как использовать функцию ABS() в MySQL для возврата абсолютного значения числа.

 

Обзор функции ABS() в MySQL

Функция ABS() представляет собой математическую функцию, которая возвращает абсолютное (положительное) значение числа.

Ниже показан синтаксис функции ABS():

ABS(n)

 

В этом синтаксисе n – это буквальное число или выражение, которое оценивается как число. Если n – отрицательное число, функция ABS() меняет отрицательное значение на положительное. Если n равно нулю или положительно, функция ABS() не имеет никакого эффекта.

Тип данных возвращаемого значения совпадает с типом данных входного аргумента.

Следующий график иллюстрирует функцию ABS():

MySQL. Функция ABS

 

Примеры функций ABS() в MySQL

В следующем примере показаны результаты использования функции ABS() для четырех разных чисел:

SELECT
ABS(-10),
ABS(0),
ABS(10);

 

Вот результат запроса:

MySQL. Функция ABS

 

 

Использование функции ABS в столбцах таблицы

Мы будем использовать таблицу products для демонстрации:

MySQL. Функция ABS

Следующий запрос находит код продукта, MSRP и отклонение MSRP продукта от среднего значения MSRP продукта в его линейке продуктов.

SELECT
productName,
productLine,
msrp,
ABS(
ROUND(
msrp - AVG(msrp) OVER (
PARTITION BY productLine
)
)
) deviation
FROM
products
ORDER BY
productName;

 

Вот вывод:

MySQL. Функция ABS

 

 

Давайте разберем расчет столбца отклонений.

Во-первых, оконная функция AVG() возвращает среднее значение MSRP для каждого продукта в своей линейке продуктов:

AVG(msrp) OVER ( PARTITION BY productLine )

 

Во-вторых, следующая формула возвращает разницу между MSRP и средней линейкой продуктов MSRP:

msrp - AVG(msrp) OVER (PARTITION BY productLine)

 

В-третьих, функция ROUND() округляет отклонение до нуля.

ROUND(
msrp - AVG(msrp) OVER (
PARTITION BY productLine
)
)

 

В-четвертых, поскольку у некоторых продуктов MSRP ниже, чем среднее значение MSRP, их отклонения от среднего значения являются отрицательными. Функция ABS() применяется ко всем отклонениям и будет возвращать абсолютные значения.

Из этой статьи вы узнали, как использовать функцию ABS() в MySQL для получения абсолютного значения числа.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 401

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close