mysql区间统计函数

1. INTERVAL(N,N1,N2,N3,…)

INTERVAL()函数进行比较列表(N1,N2,N3等等)中的N值。该函数如果N<N1返回0,如果N<N2返回1,如果N<N3返回2 等等。如果N为NULL,它将返回-1。列表值必须是N1<N2<N3的形式才能正常工作。

mysql> select INTERVAL(10,0,5,10,15);
+------------------------+
| INTERVAL(10,0,5,10,15) |
+------------------------+
|                      3 |
+------------------------+
1 row in set (0.00 sec)

INTERVAL(10,0,5,10,15) 会匹配区间0-5,5-10,10-15,15- 四个区间。索引分别为0,1,2,3。因为10位于第三区间(前闭后开),所以结果为3。

可以配合count函数,统计各个区间的分布情况。比如:

mysql> select INTERVAL(10,0,5,10,15) as i,count(*) from test group by i;
+---+----------+
| i | count(*) |
+---+----------+
| 3 |     10 |
+---+----------+
1 row in set (0.00 sec)

2. ELT(N,str1,str2,str3,…)

如果N =1返回str1,如果N= 2返回str2,等等。返回NULL如果参数的数量小于1或大于N。ELT()是FIELD()的补集。

mysql> select ELT(INTERVAL(10,0,5,10,15),'interval1','interval2','interval3','interval4');
+-----------------------------------------------------------------------------+
| ELT(INTERVAL(10,0,5,10,15),'interval1','interval2','interval3','interval4') |
+-----------------------------------------------------------------------------+
| interval3                                                                   |
+-----------------------------------------------------------------------------+
1 row in set (0.00 sec)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值