zoukankan      html  css  js  c++  java
  • LeetCode--SQL 查询:查找所有至少连续出现三次的数字。

    编写一个 SQL 查询,查找所有至少连续出现三次的数字。

    +----+-----+
    | Id | Num |
    +----+-----+
    | 1  |  1  |
    | 2  |  1  |
    | 3  |  1  |
    | 4  |  2  |
    | 5  |  1  |
    | 6  |  2  |
    | 7  |  2  |
    +----+-----+
    

    例如,给定上面的 Logs 表, 1 是唯一连续出现至少三次的数字。

    +-----------------+
    | ConsecutiveNums |
    +-----------------+
    | 1               |
    +-----------------+
    select distinct Num as ConsecutiveNums
    from (
      select Num, 
      case 
        when @prev = Num then @count := @count + 1
        when (@prev := Num) is not null then @count := 1
      end as CNT
      from Logs, (select @prev := null,@count := null) as t
    ) as temp
    where temp.CNT >= 3
    
    # SQL查询先看from,上边form表,还有初始化了pre、count为null,分别记录上一个数字已经连续出现的次数。
    # 然后调用if()函数,如果pre和当前行数字相同,count加1极为连续出现的次数;
    # 如果不同,意味着重新开始一个数字,count重新从1开始。
    # 注意:pre初始值最好不要赋值为一个数字,因为不确定赋值的数字是否会出现在测试表中。
    慢慢来才是最快的
  • 相关阅读:
    Laravel笔记
    Mysql函数大全
    nginx中文文档
    解析富文本框
    VSCode的C++环境配置,多cpp在同一文件夹(json方式)
    UltraISO光盘刻录
    plog日志库(c++)
    .NET Core安装
    Halcon深度学习——奇异值检测
    C++命名规范
  • 原文地址:https://www.cnblogs.com/jongty/p/12620090.html
Copyright © 2011-2022 走看看