• 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

  • 相关阅读:
    sql交集、差集、并集
    控件自适应文本宽度
    pivot列行转换,自动计算分组,解决groupby问题
    echart-scatter使用散点图,带坐标和项目名称
    下载文件根据浏览器判断文件名,解决兼容性问题
    sql中类型转换涉及的性能差异之convert和cast
    js使用正则表达式对文本框进行限制输入
    Aspose.Words.dll根据模板生成word详解
    Windows服务开发
    SqlBulkCopy学习(导入海量数据的类)
  • 原文地址:https://www.cnblogs.com/fps2tao/p/9041348.html
Copyright © 2020-2023  润新知