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

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

  • автор:

Как округлить число в 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.

    Функция 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 (Transact-SQL)

    Возвращает числовое значение, округленное до указанной длины или точности.

    Синтаксис

    ROUND ( numeric_expression , length [ ,function ] ) 

    Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

    Аргументы

    numeric_expression
    Выражение точной числовой или приблизительной категории типов данных.

    length
    Точность, с которой должно быть округлено значение numeric_expression. длина должна быть выражением типа tinyint, smallint или int. Если длина является положительным числом, numeric_expression округляется до числа десятичных позиций, указанных по длине. Если аргумент length является отрицательным числом, значение numeric_expression округляется слева от десятичной запятой, как указано в аргументе length.

    function
    Тип выполняемой операции. функция должна быть крошечной, маленькой или int. Если функция опущена или имеет значение 0 (по умолчанию), numeric_expression округляется. Когда указывается значение, не равное 0, значение numeric_expression усекается.

    Типы возвращаемых данных

    Возвращает следующие типы данных.

    Результат выражения Возвращаемый тип
    tinyint int
    smallint int
    int int
    bigint bigint
    Категория decimal и numeric (p, s) decimal(p, s)
    Категории money и smallmoney money
    Категории float и real float

    Замечания

    Функция ROUND всегда возвращает значение. Если аргумент length имеет отрицательное значение и больше числа знаков перед десятичной запятой, ROUND возвращает 0.

    Пример Результат
    ROUND(748,58, -4) 0

    Функция ROUND возвращает округленное значение выражения numeric_expression независимо от типа данных, когда length является отрицательным числом.

    Примеры Результат
    ROUND(748,58, -1) 750,00
    ROUND(748,58, -2) 700.00
    ROUND(748.58, -3) В результате возникает арифметическое переполнение, так как для значения 748,58 по умолчанию используется тип decimal (5,2), который не позволяет вернуть значение 1000.
    Чтобы округлить результат до четырех цифр, измените тип данных на входе. Например:

    Примеры

    А. Использование функции ROUND и приближений

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

    SELECT ROUND(123.9994, 3), ROUND(123.9995, 3); GO 
    ----------- ----------- 123.9990 124.0000 

    B. Использование функции ROUND и округляющих аппроксимаций

    В следующем примере показаны округление и аппроксимация.

    SELECT ROUND(123.4545, 2), ROUND(123.45, -2); 
    ---------- ---------- 123.4500 100.00 

    C. Использование функции ROUND для усечения

    В следующем примере используются две инструкции SELECT для демонстрации различия между округлением и усечением. Первая инструкция округляет результат. Вторая инструкция усекает результат.

    SELECT ROUND(150.75, 0); GO SELECT ROUND(150.75, 0, 1); GO 
    -------- 151.00 (1 row(s) affected) -------- 150.00 (1 row(s) affected) 

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

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