Перейти к основному содержимому

SQL ROUND

Если вы читаете это, вероятно, вы занимаетесь данными. И как человек, работающий с данными, который, вероятно, моделирует данные для аналитических задач, вам время от времени потребуется округлять данные. Для тех, кто не знаком с этим понятием, "округление" — это упрощение числа, чтобы его было легче понять, при этом сохраняя его близким к исходному значению. В данных распространенный случай использования округления — это уменьшение количества десятичных знаков в числовой записи.

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

Как использовать функцию SQL ROUND

Синтаксис использования функции ROUND выглядит следующим образом:

round(<числовая колонка или данные>, [опционально] <количество десятичных знаков>)

В этой функции вам нужно ввести числовое поле или данные, которые вы хотите округлить, и передать опциональное число, чтобы округлить ваше поле. Для большинства хранилищ данных количество десятичных знаков по умолчанию равно 0 или 1, что означает, что если вы округлите 20.00 с помощью round(20.00), это вернет 20 или 20.0 (в зависимости от вашего хранилища данных).

Пример использования функции SQL ROUND

Вы можете округлить некоторые числовые поля модели orders из Jaffle Shop с помощью следующего кода:

select 
cast(order_id as string) as order_id,
order_date,
amount,
round(amount, 1) as rounded_amount
from {{ ref('orders') }}

После выполнения этого запроса результирующая таблица orders будет выглядеть примерно так:

order_idorder_dateamountrounded_amount
12018-01-0110.00000010.0
22018-01-0220.00000020.0
32018-01-041.0000001.0

Новый столбец rounded_amount — это поле amount, округленное до 1 десятичного знака.

Для большинства хранилищ данных возвращаемые данные из функции ROUND должны быть такими же, как и входные данные. Если вы вводите тип float в функцию ROUND, возвращаемое округленное число также должно быть float.

Синтаксис функции SQL ROUND в Snowflake, Databricks, BigQuery и Redshift

Google BigQuery, Amazon Redshift, Snowflake и Databricks поддерживают возможность округления числовых колонок и данных. Кроме того, синтаксис округления одинаков для всех них с использованием функции ROUND.

Случаи использования функции ROUND

Если вы округляете числовые данные, будь то в моделях данных или в разовых анализах, вы, вероятно, округляете, чтобы улучшить читаемость и удобство использования ваших данных, используя промежуточные intermediate или mart модели. В частности, вы, вероятно, используете функцию ROUND для:

  • Упрощения и улучшения понимания числовых расчетов с использованием деления или средних значений
  • Создания конкретных групп данных для более чистого распределения значений во время разового анализа

Вы также, вероятно, увидите использование функции ROUND в вашем BI-инструменте, так как она генерирует округленные чистые числа для взаимодействия бизнес-пользователей.

0