Saltar al contenido

División (/) no da mi respuesta en postgresql

Solución:

Sus columnas tienen tipos de enteros y la división de enteros trunca el resultado hacia cero. Para obtener un resultado preciso, deberá convertir al menos uno de los valores en flotante o decimal:

select cast(dev_cost as decimal) / sell_cost from software ;

o solo:

select dev_cost::decimal / sell_cost from software ;

Luego puede redondear el resultado al número entero más cercano usando el ceil() función:

select ceil(dev_cost::decimal / sell_cost) from software ;

(Vea la demostración en SQLFiddle).

Puede convertir el tipo entero a numeric y use ceil() función para obtener la salida deseada

La función ceil de PostgreSQL devuelve el valor entero más pequeño que es mayor o igual que un número.

SELECT 16000::NUMERIC / 7500 col 
      ,ceil(16000::NUMERIC / 7500) 

Resultado:

col                  ceil 
------------------   ---- 
2.1333333333333333     3    

Entonces tu consulta debería ser

select ceil(dev_cost::numeric/sell_cost) 
from software

También puede convertir su variable al tipo deseado, luego aplicar la división:

 SELECT (dev_cost::numeric/sell_cost::numeric);

Puede redondear su valor y especificar el número de dígitos después del punto:

SELECT TRUNC((dev_cost::numeric/sell_cost::numeric),2);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *