zoukankan      html  css  js  c++  java
  • MySQL 使用 比较函数 INTERVAL() 函数 实现数据按区间分组

    首先看一下它的定义:

    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的形式才能正常工作。

    下面的代码是显示 INTERVAL()函数如何工作的一个简单的例子:

    mysql>SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,10);
    +---------------------------------------------------------+
    | INTERVAL(6,1,2,3,4,5,6,7,8,9,10)                        |
    +---------------------------------------------------------+
    | 6                                                       |
    +---------------------------------------------------------+
    1 row in set (0.00 sec)

    结果中,6是从零开始的索引,列表第一个值的值大于N. 在我们的例子中,6 属于 [6,7) ,所以返回第6个索引

    请记住,6是从零开始的索引,列表第一个值的值大于N. 在我们的例子中,7是错误的值,它是位于第六索引插槽。

    (另 INTERVAL 还是日期计算的关键字)

    SELECT INTERVAL(6,1,2,3,4,5,6,7,8,9,1); -- 返回比N大的位置
    
    SELECT NOW()-INTERVAL 24 HOUR  --  时间比较: 返回 前一天

    -------------------------------------------- 定义结束分割线 --------------------------------------------

    好,下面看一个使用 INTERVAL 实现数据分组的示例

    假设有一个下载速度表(有 speed 和 count 两个字段),

    然后统计1M,2M,4M,8M,8M以上这个5个速度区间的个数

    select INTERVAL(speed,1000,2000,4000,8000) as i_s, sum(count)
    from a_speed_table
    group by i_s

    上面的 sql 根据速度区间分组,再对不同区间出现的次数求和

    转:https://blog.csdn.net/a_ran/article/details/78496923

  • 相关阅读:
    git merge 和 git rebase 的使用场景
    Xcode 报错:解决 Could not attach to pid : "xx" 不重开工程的杀手锏
    软件设计模式的7条原则
    iOS开发信号量的使用
    利用SAMKeyChain生成唯一设备号
    iOS Fundation和CoreFoundation的对象转换内存管理权问题
    已有的PHP安装gd扩展
    centos7 编译安装 php7.4
    Nacos集群模式部署步骤
    搭建 Apache RocketMQ 单机环境
  • 原文地址:https://www.cnblogs.com/fps2tao/p/9041348.html
Copyright © 2011-2022 走看看