需要始终使用SQL进行汇总

需要始终使用SQL进行汇总,sql,rounding,Sql,Rounding,十进制值需要四舍五入到最接近的整数,小数部分是大于还是小于都无所谓 我的问题是: SELECT MONTH_ , COST , DISC_COST / COST AS 'amount' , DISC_COST , PROFIT FROM arr WHERE MONTH_ LIKE 'JANU%' 结果如下: MONTH_ COST amount DISC_COST PROFIT Ja

十进制值需要四舍五入到最接近的整数,小数部分是大于还是小于都无所谓

我的问题是:

SELECT  MONTH_ 
        , COST 
        , DISC_COST / COST AS 'amount' 
        , DISC_COST 
        , PROFIT  
FROM    arr 
WHERE   MONTH_ LIKE 'JANU%'
结果如下:

MONTH_  COST    amount      DISC_COST   PROFIT
January 200     1              200       70
January 3500    2,414285714    8450     7250
January 4500    1              4500     2900
January 28500   0,631578947    18000    11200
January 600     1              600      100
使用
CEIL()
函数(MySQL/Postgres)。
使用
天花()
函数(MS SQL)

您可以使用trunc()将其设置为整数值,只需截断十进制值即可

SELECT MONTH_ , COST , TRUNC(DISC_COST / COST) AS 'amount' , DISC_COST , PROFIT  FROM arr WHERE MONTH_ LIKE 'JANU%'

这种舍入通常被称为“上限”。为了提供帮助(如果这本身还不够线索的话),我们需要知道您使用的是哪种数据库产品(例如Oracle、SQL Server、MySql等),您使用的数据库是什么?MySql?神谕等等。@vahdet它是sqlIt它是
天花板
的,是
天花板
的。不,SQL是语言,而不是数据库。@ArailymMedetkazina SQL是一种语言,根据引擎的不同,它有不同的风格。所以问题是:你使用MySQL吗?神谕PostgreSQL?MariaDB?
ROUND
不会生成2.4 a 3。请尝试CEIL()函数您正在使用哪种RDBMS?这就是为什么当问题不清楚时,您应该等待,而不是急于提供(可能有用,可能没有)答案的原因。@rahulJain不幸的是,在sql中无法使用CEIL()
TRUNC
不会生成0.6 a 1。
SELECT MONTH_ , COST , TRUNC(DISC_COST / COST) AS 'amount' , DISC_COST , PROFIT  FROM arr WHERE MONTH_ LIKE 'JANU%'