首页 > 数据库 >mysql elt interval函数区间统计

mysql elt interval函数区间统计

时间:2023-03-13 09:22:18浏览次数:33  
标签:ELT interval elt mysql 区间 100 500 1000

引言

  在实际的业务统计需求中 有时往往需要对区间进行分组统计查询,如分数区间,工资区间查询统计等!mysql中可以利用elt函数来实现此类需求!
接下来看如下时间业务需求:
1:现在要进行统计,小于100的,100~500的,500~1000的,1000以上的,这各个区间的id数
mysql> select * from k1;
+------+------+
| id   |  yb  |
+------+------+
|    1 |  100 |
|    2 |   11 |
|    3 |    5 |
|    4 |  501 |
|    5 | 1501 |
|    6 |    1 |
+------+------+
 
现在要进行统计,小于100的,100~500的,500~1000的,1000以上的,这各个区间的id数
 
利用interval划出4个区间
 
再利用elt函数将4个区间分别返回一个列名
 
mysql> select elt(interval(d.yb,0, 100, 500, 1000), '0-100', '100-500', '500-1000', '1000-...') as yb_level, count(d.id) as cnt
    -> from k1 d   
    -> group by yb_level;
+-----------+-----+
| yb_level  | cnt |
+-----------+-----+
| 100-500   |   1 |
| 500-1000  |   1 |
| 0-100     |   3 |
| 1000-...  |   1 |
+-----------+-----+
4 rows in set (0.00 sec)
 ELT函数:

格式:ELT(N,str1,str2,str3,...)
ELT函数用于返回在参数列表中指定的索引号处的字符串。
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。ELT()是FIELD()反运算。
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');
    -> 'ej'
mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');
    -> 'foo'

  Interval函数:
格式:INTERVAL(N,N1,N2,N3,...)
Interval函数用于返回N 值再区间段所在的索引位置,位置从0开始
如果N <N1,返回0, 如果 N1<= N < N2,则返回1,以此类推 
mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200); (23小于30,30的位置是4,于是返回3)
       -> 3
mysql> SELECT INTERVAL(10, 1, 10, 100, 1000); (10 大于10,小于100,于是返回2)
       -> 2
mysql> SELECT INTERVAL(22, 23, 30, 44, 200);  (22小于23,23的位置是1,于是返回0)
       -> 0
有了ELT和 Interval函数后,我们的区间统计就方便多了,避免的重复繁琐的Switch...Case...多重判断了

标签:ELT,interval,elt,mysql,区间,100,500,1000
From: https://www.cnblogs.com/zhaosq/p/17192256.html

相关文章

  • MySQL学习笔记-事务
    事务事务:是一组操作的集合,是一个不可分割的工作单位,事务会把所有操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败(当操作中某一步出现......
  • 【项目实战】基于Python、Django以及MySQL的网上书城管理系统项目实战教程(附完整源码)
    1、项目说明基于python+Django+Mysql的网上书城系统项目实战项目需要安装pycharm专业版以及MySQL环境(环境搭建和破解可以看我的B站里的视频有讲解)首先需要创建数据库......
  • mysql-8.0.x搭建主从
    概述master/slave用作备库的形式数据库的可用性开干envcentos7.x2c4gx2mysql8.0.28x01、mysql安装mysql-8.0.x搭建x02、修改my.cnfmaster[mysql]auto-r......
  • 【项目实战】基于Python+Tkinter+MySQL的GUI简易酒店管理系统(附完整源码)
    1、项目说明基于python+Tkinter+MySQL的简易酒店管理系统项目实战项目需要安装pycharm社区版或专业版都可,MySQL以及项目所需的所有模块项目需要安装tkinter、pymysql......
  • mysql
    mysql数据库相关概念数据:数据库:存储数据的仓库,数据是有组织的进行存储数据库管理系统:操纵和管理数据库的大型软件SQL:结构化查询语言(structuredquerylanguage),是一套......
  • 力扣180(MySQL)-连续出现的数字(中等)
    题目:编写一个SQL查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。查询结果格式如下面的例子所示: 解题思路:原表数据: 方法......
  • mysql数据库系统
    数据库的概念:数据库就是一个运行在系统上的软件,用于存储用户个人信息、用户的游戏资料等数据库是多个表的集合,是存储数据的仓库,以一定的组织方式存储的相互有关的数据数据库......
  • 【项目实战】基于Python+Django+MySQL的新闻发布系统(附完整源码)
    1、项目说明基于python+Django+Mysql的新闻发布系统项目实战项目需要安装pycharm专业版以及MySQL环境(环境搭建和破解可以看我的B站里的视频有讲解)首先需要创建数据库数......
  • mysql优化
    mysql使用总结针对字段判断casewhen字段判断then使用示例#建表语句CREATETABLE`user`(`id`int(255)NOTNULL,`name`varchar(255)DEFAULTNULL,`ag......
  • 【项目实战】基于Python+Django+MySQL的音乐网站系统(附完整源码)
    1、项目说明基于python+Django+Mysql的音乐网站系统项目实战项目需要安装pycharm专业版以及MySQL环境(环境搭建和破解可以看我的B站里《python环境配置》的视频里有讲解)......