vlambda博客
学习文章列表

mysql 中取整函数ROUND,FLOOR和CEILING的用法

一、ROUND()函数用法


ROUND(X) -- 表示将值 X 四舍五入为整数,无小数位


ROUND(X,D) -- 表示将值 X 四舍五入为小数点后 D 位的数值,D为小数点后小数位数。若要保留 X 值小数点左边的 D 位,可将 D 设为负值。

  

该函数与FLOOR函数有所不同,在应用中需注意,另外,DECIMAL函数也有类似该函数四舍五入的功能。


1、ROUND示例:
SELECT ROUND('123.456')
-----------------------------
123

SELECT ROUND('123.654')
-----------------------------
124

SELECT ROUND('123.456',2)
-----------------------------
123.46

SELECT ROUND('123.654',2)
-----------------------------
123.65
————————————————


2、DECIMAL示例:
SELECT CAST('123.456' AS DECIMAL)
----------------------------------
123

SELECT CAST('123.654' AS DECIMAL)
----------------------------------
124

SELECT CAST('123.456' AS DECIMAL(10,2))
-------------------------------------------
123.46

SELECT CAST('123.654' AS DECIMAL(10,2))
-------------------------------------------
123.65
————————————————


二、FLOOR函数用法

FLOOR(X)表示向下取整,只返回值X的整数部分,小数部分舍弃。


FLOOR示例:
SELECT FLOOR('123.456')
-----------------------------
123

SELECT FLOOR('123.654')
-----------------------------
123


三、CEILING函数用法
CEILING(X) 表示向上取整,只返回值X的整数部分,小数部分舍弃。


CEILING示例:
SELECT CEILING('123.456')
-----------------------------
124


SELECT CEILING('123.654')
-----------------------------
124


SQL75 考试分数(四)


题目描述



题解

解法1

select a.job,
    ROUND(count(a.id)/2),
    ROUND((count(a.id)+1)/2)
from grade a
group by a.job
order by job

总数/2     (总数+1)除以2 


解法2:

select job,
   floor((count(job)+1)/2as start,
   ceiling((count(job)+1)/2as end
from grade
group by job
order by job

Start部分向下取整,End部分向上取整


END