Problema:
Você deseja arredondar um número para baixo para o inteiro mais próximo.
Exemplo:
Nosso banco de dados possui uma tabela chamada empregado com dados nas seguintes colunas:
id
, first_name
, last_name
e hours_worked
(para o mês atual). id | first_name | last_name | horas_trabalhadas |
---|---|---|---|
1 | Alan | Watson | 95 |
2 | Lisa | Preto | 225 |
3 | Laura | Williams | 104 |
Vamos mostrar o nome e o sobrenome de cada funcionário junto com o número de dias que eles trabalharam. Como a tabela mostra apenas o número de horas trabalhadas e não os dias, temos que calcular esse valor nós mesmos.
Para este problema, vamos supor que cada funcionário tenha uma jornada de trabalho padrão de oito horas sem irregularidades. Portanto, o número de dias trabalhados é o número de horas dividido por oito.
Solução:
SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked FROM employee;
A consulta retorna o nome e sobrenome de cada funcionário e o número de dias que eles trabalharam neste mês.
last_name | first_name | dias_trabalhados |
---|---|---|
Watson | Alan | 11 |
Preto | Lisa | 28 |
Williams | Laura | 13 |
Discussão:
O piso é uma operação matemática simples que pega um número e o arredonda para o número inteiro mais próximo. Por exemplo, o piso de 5 é o próprio 5, enquanto o piso de 5,1 também é 5. Como outro exemplo, o piso de 4,9 é 4.
Em SQL, usamos a função FLOOR. Leva o número para arredondar e retorna o inteiro mais próximo que é menor ou igual a ele. Em nosso exemplo, o número de dias trabalhados deve ser um número inteiro, não um número de ponto flutuante. Assim, usamos (
FLOOR(hours_worked/8)
).