Как округлить avg в sql
Перейти к содержимому

Как округлить avg в sql

  • автор:

Функция SQL ROUND()

Оператор SQL ROUND() — функция для округления десятичных чисел. Работает только с числовыми столбцами или произвольными вещественными числами.

Функция SQL ROUND() имеет следующий синтаксис:

ROUND(expression, length)

expression — название столбца или столбцов, а так же вещественное число.

length — указывает точность округления для числа.

Примеры оператора SQL ROUND. Имеется следующая таблица Planets :

ID PlanetName Radius SunSeason OpeningYear HavingRings Opener
1 Mars 3396 687.58 1659 No Christiaan Huygens
2 Saturn 60268 10759.22 Yes
3 Neptune 24764 60190.91 1846 Yes John Couch Adams
4 Mercury 2439 115.88 1631 No Nicolaus Copernicus
5 Venus 6051 243.56 1610 No Galileo Galilei

Пример 1. Используя оператор SQL ROUND округлить столбец SunSeason с точностью до одного знака после запятой:

SELECT ROUND(SunSeason, 1) FROM Planets
SunSeason
687.5
10759.2
60190.9
115.8
243.5

Пример 2. Округлить значение числа с использованием оператора SQL ROUND.

Функция SQL ROUND() может принимать в качестве первого аргумента любое вещественное число:

SELECT ROUND(43532.8123, 3)

Функция ROUND

Посчитать средний размер жесткого диска ПК. Результат представить с двумя знаками после десятичной точки.

Консоль

Выполнить

мы получим такой результат:

Чтобы выполнить требуемое округление можно воспользоваться функцией ROUND :

Консоль

Выполнить

Второй аргумент этой функции как раз указывает число десятичных знаков результата.

Как видно, результат был округлен по арифметическим правилам. Однако у функции ROUND есть третий необязательный аргумент, который говорит о том, округлять ли результат (значение 0 — принимается по умолчанию) или отбрасывать цифры сверх удерживаемых (ненулевое значение).

Т.е. если мы перепишем наш запрос так:

Консоль

Выполнить

то получим другой результат:

Кстати, округлять можно до любого знака, не только десятичного. Например, чтобы округлять до десятков, сотен и т.д., используются отрицательные значения второго аргумента. Следующий запрос округляет результат до десятков.

Консоль

Выполнить

Следует отметить, что функция ROUND выполняет округление, но не меняет тип результата. Т.е. если аргумент будет иметь тип dec(12,6), то и результат округления будет того же типа, а именно,

В этом легко убедиться, выполнив запрос

Поэтому, если вы хотите избавиться от хвостовых нулей, используйте преобразование к нужному вам типу, например, dec(12,2). Тогда нам и функция ROUND не потребуется. 🙂

Консоль

Выполнить

Как округлить число в sql

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

SELECT ROUND( 10.4 ); 

Значение 10.4 будет округлено до 10.

Второй аргумент показывает до скольки знаков после запятой нужно округлять:

SELECT ROUND( 10.812, 2 ); 

В результате мы получим 10.81.

SQL AVG () с ROUND (), группировка по

На этой странице мы собираемся обсудить использование SQL ROUND () вместе с функцией SQL AVG (). SQL ROUND () используется для округления значения до определенного десятичного знака.

Предложение GROUP BY с агрегатной функцией создает результат в группе.

Примеры:

Образец таблицы: клиент

Чтобы получить среднее значение параметра «holy_amount» как целое число, означающее округление до нуля из таблицы «customer», можно использовать следующий оператор SQL:

SELECT ROUND(AVG(outstanding_amt) ,0) AS "Rounded Avg." FROM customer; 
Округлая средняя ------------ 7600

SQL AVG () с группировкой по

Пример таблицы: заказы

Чтобы получить данные «agent_code», используйте среднее значение «advance_amount» для каждого агента из таблицы «orders» со следующим условием:

1. каждый код агента должен быть в группе,

можно использовать следующий оператор SQL:

SELECT agent_code, AVG(advance_amount) FROM orders GROUP BY agent_code; 
AGENT_CODE AVG (ADVANCE_AMOUNT) ---------- ------------------- A004 525 A002 500 A007 250 A009 100 A011 450 A012 225 A010 740 A013 1600 A001 200 A008 1100 A006 300 A005 1033,33333 A003 500

SQL AVG () с ROUND () и группировать по

Образец таблицы: клиент

Чтобы получить данные для «agent_code», нужно указать сумму «Opening_amt» с заголовком «Op. Amt »и среднее значение« имя_оценки »как целого числа, то есть округленный ноль (0) с заголовком« Rou. Avg. для каждого агента из таблицы «клиент» со следующим условием —

1. каждый агент должен прийти в группу,

можно использовать следующий оператор SQL:

SELECT agent_code, SUM (opening_amt) AS "Op. Amt.", ROUND(AVG(outstanding_amt),0) AS "Rou. Avg." FROM customer GROUP BY agent_code; 
AGENT_CODE Op. Amt. Роу. Avg. ---------- ---------- ---------- A002 22000 10667 A004 25000 8000 A007 16000 10500 A009 6000 5000 A011 5000 8000 A012 5000 3000 A010 22000 9333 A001 8000 12000 A008 13000 5000 A006 8000 4500 A005 19000 6000 A003 12000 7500

SQL AVG () с ROUND (), округленным до ближайшего отрицательного значения

Далее мы обсудим, как можно использовать SQL ROUND () вместе с функцией SQL AVG () для округления значения до определенного десятичного знака. Округление может быть выполнено до ближайших отрицательных или положительных знаков после запятой (.).

Образец таблицы: клиент

Чтобы получить среднее значение «(879.254 / 2)» с заголовком «My Avg» и среднее значение «(879.254 / 2)», округленное до 1 десятичного знака, отрицательное от десятичной точки с заголовком «Rounded -1 Decimal» Place ‘from’ customer ‘, можно использовать следующий оператор SQL:

SELECT AVG (879.254/2) AS "My Avg.", ROUND (AVG(879.254/2),-1) AS "Rounded -1 Decimal Place" FROM customer; 
Мой средний Округлено -1 десятичное место --------- ------------------------ 439,627 440

SQL AVG () с ROUND (), округленным до ближайшего положительного значения

Образец таблицы: клиент

Чтобы получить среднее значение «(879.254 / 2)» с заголовком «My Avg» и среднее значение «(879.254 / 2)», округленное до 2 десятичных разрядов, положительное от десятичной точки с заголовком «Rounded 2 Decimal Place» из таблицы customer можно использовать следующий оператор SQL:

SELECT AVG (879.254/2) AS "My Avg.", ROUND (AVG(879.254/2),2) AS "Rounded 2 Decimal Place" FROM customer; 
Мой средний Округлые 2 знака после запятой ---------- ----------------------- 439,627 439,63

SQL AVG () с ROUND () как целое число

Образец таблицы: клиент

Чтобы получить среднее значение ‘(879.254 / 2)’ и среднее значение ‘(879.254 / 2)’, округленное до 0-го знака после запятой с заголовком ‘Rounded’ из таблицы ‘customer’, следующий оператор SQL может быть используемый :

SELECT AVG (879.254/2), ROUND (AVG (879.254/2),0) AS "Rounded" FROM customer; 
AVG (879.254 / 2) округлено -------------- ---------- 439,627 440

Примечание. Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 10g Express Edition.

Вот слайд-презентация всех агрегатных функций.

Упражнения по SQL

  • Упражнения по SQL, практика, решение
  • SQL Получить данные из таблиц [33 Упражнения]
  • Булевы и реляционные операторы SQL [12 упражнений]
  • Подстановочные знаки SQL и специальные операторы [22 упражнения]
  • Агрегатные функции SQL [25 упражнений]
  • Вывод запроса форматирования SQL [10 упражнений]
  • SQL-запросы к нескольким таблицам [7 упражнений]
  • ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
  • SQL СОЕДИНЯЕТ
    • SQL СОЕДИНЯЕТСЯ [29 упражнений]
    • SQL присоединяется к базе данных HR [27 упражнений]
    • ПОДПИСИ SQL [39 упражнений]
    • SQL ПОДПИСИ по базе данных HR [55 упражнений]
    • ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
    • ПОДПИСКИ на фильм База данных [16 упражнений]
    • ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
    • Вступление
    • ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
    • ПОДПИСКИ по футбольной базе данных [33 упражнения]
    • ПРИСОЕДИНЯЕТСЯ к запросам по футбольной базе данных [61 упражнений]
    • Вступление
    • ОСНОВНЫЕ, ПОДПИСИ И СОЕДИНЕНИЯ [39 упражнений]
    • ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
    • БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]

    Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

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

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