sql >> Base de Datos >  >> RDS >> Database

Cómo hacer números de piso en SQL

Problema:

Quiere redondear un número hacia abajo al entero más cercano.

Ejemplo:

Nuestra base de datos tiene una tabla llamada empleado con datos en las siguientes columnas:id , first_name , last_name y hours_worked (para el mes actual).

id nombre apellido horas_trabajadas
1 Alan Watson 95
2 Lisa Negro 225
3 Laura Williams 104

Mostremos el nombre y apellido de cada empleado junto con la cantidad de días que trabajaron. Dado que la tabla solo muestra la cantidad de horas trabajadas y no los días, tenemos que calcular este valor nosotros mismos.

Para este problema, supondremos que cada empleado tiene una jornada laboral estándar de ocho horas sin irregularidades. Por lo tanto, el número de días trabajados es el número de horas dividido por ocho.

Solución:

SELECT last_name, first_name, FLOOR(hours_worked/8) AS days_worked
FROM employee;

La consulta devuelve el nombre y apellido de cada empleado y la cantidad de días que trabajaron este mes.

apellido nombre días_trabajados
Watson Alan 11
Negro Lisa 28
Williams Laura 13

Discusión:

Flooring es una operación matemática simple que toma un número y lo redondea al entero más cercano. Por ejemplo, el piso de 5 es 5 en sí mismo, mientras que el piso de 5.1 también es 5. Como otro ejemplo, el piso de 4.9 es 4.

En SQL, usamos la función FLOOR. Toma el número para redondearlo y devuelve el entero más cercano que es menor o igual que él. En nuestro ejemplo, el número de días trabajados debe ser un número entero, no un número de coma flotante. Por lo tanto, usamos (FLOOR(hours_worked/8) ).