Função MySQL ROUND – 03

Resumo : neste tutorial, você aprenderá como usar a ROUND()função MySQL para arredondar um número para um número especificado de casas decimais.

Introdução à função MySQL ROUND()

A ROUND()é uma função matemática que permite arredondar um número para um determinado número de casas decimais.

Aqui está a sintaxe básica da ROUND()função:

ROUND(n,[d])Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe:

  • né um número a ser arredondado
  • dé o número de casas decimais para as quais o número é arredondado. O número de casas decimais ( d) é opcional. O padrão é zero se você ignorá-lo.

As seguintes declarações são equivalentes:

SELECT ROUND(20.5);
-- 21

SELECT ROUND(20.5, 0);
-- 21Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O número de casas decimais ( d) pode ser positivo ou negativo. Se for negativo, os ddígitos à esquerda da vírgula do número ntornam-se zero.

SELECT ROUND(121.55,-2)
-- 100Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A ROUND()função retorna um número que possui o mesmo tipo de dados que o número a ser arredondado ( n)

Regras de arredondamento de números de valor exato

Se nfor um número de valor exato, a ROUND()função usa a regra “arredondar para o mais próximo”. Isso significa que o valor da parte fracionária .5ou superior é arredondado para o próximo número inteiro, se positivo, ou arredondado para baixo, para o próximo número inteiro, se for negativo. Por exemplo:

SELECT ROUND(10.5); 
-- 11
SELECT ROUND(10.6); 
-- 11

SELECT ROUND(-10.5); 
-- -11
SELECT ROUND(-10.6);
-- -11Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

O valor da parte fracionária menor que .5é arredondado para o próximo número inteiro se for positivo ou para o próximo número inteiro se for negativo:

SELECT ROUND(10.4);
-- 10
SELECT ROUND(-10.4);
-- -10
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Regras de arredondamento de números de valor aproximado

Ao arredondar um número de valor aproximado, o resultado da ROUND()função depende da biblioteca C. Normalmente, ele usa a regra de “arredondar para o par mais próximo”, ou seja, arredonda um valor com uma parte fracionária exatamente no meio entre dois inteiros para o inteiro par mais próximo.

Exemplos de funções ROUND() do MySQL

Usaremos a orderDetailstabela do banco de dados de exemplo para a demonstração:

A instrução a seguir encontra os valores médios dos itens de linha do pedido por códigos de produto:

SELECT 
    productCode,
    AVG(quantityOrdered * priceEach) avg_order_item_value
FROM
    orderDetails
GROUP BY 
    productCode;    
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

MySQL ROUND - sem usar a função ROUND

Os valores médios dos pedidos dos produtos não são muito legíveis porque contêm muitos números após as casas decimais.

Para os valores médios, o número após as casas decimais pode não ser importante. Portanto, você pode usar a ROUND()função para arredondá-los para zero casas decimais, conforme mostrado na consulta a seguir:

SELECT 
    productCode,
    ROUND(AVG(quantityOrdered * priceEach)) avg_order_item_value
FROM
    orderDetails
GROUP BY 
    productCode;    
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A imagem a seguir mostra a saída:

MySQL ROUND - valores médios arredondados

Resumo

  • Use a função MySQL ROUND()para arredondar um número para um número especificado de casas decimais.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *