Mysql elt 函数划分区间实用讲解(如何筛选出单独某一个分值)

记录所学,总结所得。

今天就回顾一下我“研究”出来的 mysql elt函数吧。初识elt函数可以留步看看,老司机出门右拐。

首先,通过实例看看elt函数的用法,也可以说是函数本身方法的效果:

下面,我要将班级里人数按我需要的区间筛选出来:

左面是表里的数据,右面是sql查询和结果。

根据我sql查出来可以一眼看出来,这其中要注意的一点就是划分出来的分数段是 [左闭右开)的,所以设置的分数点尤为重要,就是我上面的绿色的字体,而红色的则只是展现出来的,就根据需要筛选即可。

其实要点只有一行,elt( interval (score, A, B, C, D, E, F)

(个人观点):mysql 的这个elt函数,它方法执行的是按照所设置的n个分数点,即我用字母A—F表示(我的这个例子中给了6个分数点),函数方法则将所有分数划分为6个分数区间,即[A,B), [B,C), [C,D), [D,E), [E,F), [F,+)。



下面问题来了。比如月考后,要计算班级平均分,恰好赶上学校流感,班级里有很多人请假,老师现在想把所有0分的个数筛选出来(即缺考的),然后计算平均分。这是就需要将分数=0的单独筛选出来,那么,使用elt函数怎么筛选出来呢?


假设考试分数都是整数,我的做法是:在0和1之间再选取一个分数点,因为elt函数是左闭右开,所以会把分数为0的单独划分出来,初识elt函数的小白可以思考一下。而下面展示的 '1-30' 则会统计[1,30)分的区间,丝毫不影响其他划分区区间。同样,因为elt函数最后一个区间要 >=N(N为最后一个分数点),我这里统计满分的个数也是如此,因为分数最高为100,所以最后一个区间就是满分的。

以此类推,无论你需要什么样子的区间,或者是单独某一个分数,都可以用elt函数设立分数点这种方法来筛选出来。

--------------------------------谢谢观看,有意见下方留言----------------------------

你可能感兴趣的:(Mysql elt 函数划分区间实用讲解(如何筛选出单独某一个分值))