Númerosestándar SQL

FLOOR

Redondea un número hacia abajo: al entero más cercano que no sea mayor.

Sintaxis

FLOOR(<número>)

Descarta la parte decimal hacia el número menor: 4.9 pasa a ser 4. Un entero se queda como está. Útil para repartir valores en rangos: importes por centenas, edades por décadas.

Datos para los ejemplos

orders

idcreated_atamount
12026-07-03 10:15:00120.50
22026-07-28 18:40:0080.25
32026-08-09 09:05:00199.99
42026-08-21 14:30:0045.00
52026-09-02 11:00:0064.75

Estas tablas ya están creadas en el entorno de pruebas y los ejemplos de abajo las usan. ¿Quieres repetirlo en tu propia base de datos? Copia el SQL.

Hacia abajo, a un entero
SELECT FLOOR(4.9) AS down,
FLOOR(4.0) AS whole,
FLOOR(-4.1) AS negative;
downwholenegative
44-5
Cada pedido en su rango de importes
SELECT id, amount,
FLOOR(amount / 100) * 100 AS price_range
FROM orders;
idamountprice_range
1120.50100
280.250
3199.99100
445.000
564.750
Cuántos pedidos hay en cada rango
SELECT FLOOR(amount / 100) * 100 AS price_range,
COUNT(*) AS order_count
FROM orders
GROUP BY price_range
ORDER BY price_range;
price_rangeorder_count
03
1002

0 son los importes de 0 a 99.99; 100, de 100 a 199.99.

Ten en cuenta

Con números negativos, «hacia abajo» significa más lejos de cero: FLOOR(-4.1) da -5. Simplemente quitar la parte decimal es TRUNC: TRUNC(-4.1) da -4.

La división de enteros descarta la parte decimal hacia cero, no hacia abajo: -7 / 2 da -3, mientras que FLOOR(-7 / 2.0) da -4.

Funciones relacionadas

Más detalles en el curso