最近突然出现一个需求,对于数据字段(int这种),需要根据这个字段按指定间隔进行分组,。
例如,数据库中存在表student,表中存在一个int类型的字段grade,这个字段的值有56,60,77,85,91,53,77,52,现在我需要对这个字段每隔10分(这个是可以动态配置的)统计这个区间段的学生数量。
那么我的sql就可以写成
SELECT FLOOR(grade/10)*10 grade_group, COUNT(*) FROM student GROUP BY grade_group ORDER BY grade_group
先将grade字段的值除10,然后使用floor函数舍去小数部分取整数,在乘上10,这样我们就能获取到它属于哪个区间了,再对grade_group进行分组,这样就能实现我们的目的。