As funções matemáticas em SQL são usadas para realizar vários cálculos com dados numéricos. Elas permitem arredondar valores, encontrar valores mínimos e máximos, calcular somas, médias, restos e muito mais. Esta aula aborda as funções matemáticas mais utilizadas com exemplos baseados no banco de dados Sakila.
ABS() — Retorna o valor absoluto de um número.Sintaxe:
ABS(number)
Exemplo:
SELECT ABS(amount - 5) AS abs_difference
FROM payment
LIMIT 3;
Resultado: Retorna a diferença absoluta entre o valor de amount e 5.
CEIL() / CEILING() — Arredonda um número para cima até o inteiro mais próximo.Sintaxe:
CEIL(number)
CEILING(number)
Exemplo:
SELECT CEIL(amount) AS rounded_up
FROM payment
LIMIT 3;
Resultado: Arredonda o valor de amount para cima até o inteiro mais próximo.
FLOOR() — Arredonda um número para baixo até o inteiro mais próximo.Sintaxe:
FLOOR(number)
Exemplo:
SELECT FLOOR(amount) AS rounded_down
FROM payment
LIMIT 3;
Resultado: Arredonda o valor de amount para baixo até o inteiro mais próximo.
ROUND() — Arredonda um número para o número especificado de casas decimais.Sintaxe:
ROUND(number, decimals)
Exemplo:
SELECT ROUND(amount, 1) AS rounded_amount
FROM payment
LIMIT 3;
Resultado: Arredonda o valor de amount para uma casa decimal.
POWER() / POW() — Eleva um número a uma potência.Sintaxe:
POWER(number, exponent)
POW(number, exponent)
Exemplo:
SELECT POWER(amount, 2) AS squared_amount
FROM payment
LIMIT 3;
Resultado: Eleva o valor de amount ao quadrado.
SQRT() — Retorna a raiz quadrada de um número.Sintaxe:
SQRT(number)
Exemplo:
SELECT SQRT(amount) AS sqrt_amount
FROM payment
LIMIT 3;
Resultado: Retorna a raiz quadrada do valor de amount.
MOD() — Retorna o resto da divisão de um número por outro.Sintaxe:
MOD(dividend, divisor)
Exemplo:
SELECT MOD(payment_id, 5) AS mod_result
FROM payment
LIMIT 3;
Resultado: Retorna o resto da divisão de payment_id por 5.
SIGN() — Retorna o sinal de um número (-1, 0 ou 1).Sintaxe:
SIGN(number)
Exemplo:
SELECT SIGN(amount - 5) AS sign_value
FROM payment
LIMIT 3;
Resultado: Retorna -1 se a diferença for negativa, 0 se for zero, 1 se for positiva.
GREATEST() — Retorna o maior dos valores fornecidos (MySQL, PostgreSQL).Sintaxe:
GREATEST(value1, value2, ...)
Exemplo:
SELECT GREATEST(amount, 5) AS max_value
FROM payment
LIMIT 3;
Resultado: Retorna o maior dos dois valores: amount ou 5.
LEAST() — Retorna o menor dos valores fornecidos (MySQL, PostgreSQL).Sintaxe:
LEAST(value1, value2, ...)
Exemplo:
SELECT LEAST(amount, 5) AS min_value
FROM payment
LIMIT 3;
Resultado: Retorna o menor dos dois valores: amount ou 5.
RAND() — Retorna um número aleatório entre 0 e 1.Sintaxe:
RAND()
Exemplo:
SELECT RAND() AS random_value
FROM payment
LIMIT 3;
Resultado: Retorna um número aleatório para cada linha.
Arredondar valores de pagamento:
Use ROUND(amount, 0) para arredondar o valor para o inteiro mais próximo.
Encontrar pagamentos com resto:
Use MOD(payment_id, 2) para encontrar pagamentos pares e ímpares.
Calcular raízes quadradas:
Use SQRT(amount) para analisar a distribuição dos pagamentos.
Comparar valores:
Use GREATEST() e LEAST() para selecionar o valor máximo ou mínimo de várias colunas.
As funções matemáticas do SQL permitem realizar cálculos, analisar e transformar dados numéricos. Domine essas funções para trabalhar de forma eficaz com números em suas consultas SQL. Pratique com exemplos do banco de dados Sakila para reforçar seus conhecimentos.