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)/2) as start,
ceiling((count(job)+1)/2) as end
from grade
group by job
order by job
Start部分向下取整,End部分向上取整
END