#mysql中 对于查询结果只显示n条连续行的问题#

在领扣上碰到的一个题目:求满足条件的连续3行结果的显示

x city built a new stadium, each day many people visit it and the stats are saved as these columns: id, date, people;

please write a query to display the records which have 3 or more consecutive rows and the amount of people more than 100(inclusive).

for example, the table stadium:

+------+------------+-----------+

| id | date | people |

+------+------------+-----------+

| 1 | 2017-01-01 | 10 |

| 2 | 2017-01-02 | 109 |

| 3 | 2017-01-03 | 150 |

| 4 | 2017-01-04 | 99 |

| 5 | 2017-01-05 | 145 |

| 6 | 2017-01-06 | 1455 |

| 7 | 2017-01-07 | 199 |

| 8 | 2017-01-08 | 188 |

+------+------------+-----------+

for the sample data above, the output is:

+------+------------+-----------+

| id | date | people |

+------+------------+-----------+

| 5 | 2017-01-05 | 145 |

| 6 | 2017-01-06 | 1455 |

| 7 | 2017-01-07 | 199 |

| 8 | 2017-01-08 | 188 |

+------+------------+-----------+

1.首先先进行结果集的查询

select id,date,people from stadium where people>=100;

2.给查询的结果集增加一个自增列

select @newid:=@newid+1 as newid,test.*

from(select @newid:=0)r, test where people>100

3.自增列和id的差值 相同即连续

select @newid:=@newid+1 as newid,test.* ,@cha:=id-@newid as cha

from(select @newid:=0)r, test where people>100

4.将相同的差值 放在同一张表中,并取出连续数量大于3的

select if(count(id)>=3,count_concat(id),null)e from(

select @newid:=@newid+1 as newid,test.* ,@cha:=id-@newid as cha

from(select @newid:=0)r, test where people>100)

as d group by cha

5.将上步得到的表和主表 取得所需要的

select id,date,people from test,

(select if (count(id)>3,group_concat(id),null)e

from (select @newid:=@newid+1 as newid,test.* ,@cha:=id-@newid as cha

from(select @newid:=0)r, test where people>100)as d group by cha ) as f

where f.e is not null and find_in_set(id,f.e);

听说还可以用存储过程来完成,不过我没尝试,稍后尝试

以上

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

mysql查询连续3个月以上_MySQL查询显示连续的结果相关推荐

  1. mysql查询按值多的排序_MySQL查询结果按某值排序

    MySQL查询结果按某值排序 使用MySQL很多时候我们不仅只是查询出结果,还需要对查询结构进行排序,下文对查询结果按某值排序的方法作了详细的介绍,供您参考. AD: MySQL查询结果如何排序呢?这 ...

  2. mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用sel ...

  3. mysql查询最新的一条记录_mysql 查询不同用户 最新的一条记录

    数据库记录: MYSQL查询不同用户 最新的一条记录 方法1:查询出结果后将时间排序后取第一条(只能取到一条,并且不能查询不同客户的记录) SELECT CUSTOMER_ID,CONTENT,MOD ...

  4. mysql查询没有被关联的数据_Mysql - 查询之关联查询

    查询这块是重中之重, 关系到系统反应时间. 项目做到后期, 都是要做性能测试和性能优化的, 优化的时候, 数据库这块是一个大头. sql格式: select 列名/* from 表名 where 条件 ...

  5. mysql为表和字段取别名_MySQL查询函数---为表和字段取别名

    (1)为表取别名 (2)为字段取别名 (1)为表取别名 当表名字很长或者执行一些特殊查询时,为了方便操作或者需要多次使用相同的表时,可以为表指定别名,用这个别名代替原来的名称.为表取别名的基本语法格式 ...

  6. mssql 将查询结果作为表名参数_MySQL·查询(一)

    最近把时间都放在了回顾SQL语言上,因为能够按照需求在数据库中提取数据是非常重要的,太久没有去碰SQL,所以就花了一段时间去重新总结关于MySQL中的查询,希望下面简单的总结可以帮助大家理解SQL的查 ...

  7. mysql 一个月以前_mysql查询昨天 一周前 一月前 一年前的数据

    mysql 昨天 一周前 一月前 一年前的数据 这里主要用到了DATE_SUB, 参考如下 代码如下: SELECT * FROM yh_content where inputtime>DATE ...

  8. mysql 查询前一个月数据_mysql 查询当天、本周,本月,上一个月的数据......

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  9. mysql索引可以提高什么的操作效率_MySQL查询性能优化前,必须先掌握MySQL索引理论...

    数据库索引在平时的工作是必备的,怎么建索引,怎么使用索引,可以提高数据的查询效率.而且在面试过程,数据库的索引也是必问的知识点,比如:索引底层结构选型,那为什么选择B+树? 不同存储引擎的索引的体现形 ...

最新文章

  1. Xcode 8 控制台输出大量不用的log的问题解决NSLog失效的解决
  2. java 文件字节流_Java:文件字符流和字节流的输入和输出
  3. xmind怎么在左边创建_个人怎么做微信小程序商城
  4. mysql增量脚本_mysql全量和增量备份脚本
  5. php数组里面写路径,使用路径在PHP数组中进行递归搜索
  6. 媒体控件的暂停与播放 0130 winform
  7. 哈夫曼编码(Huffman Coding)
  8. jQuery实现轮播图--入门
  9. 未来教育2019年计算机三级数据库,2019年计算机三级数据库考试强化试题及答案012...
  10. 如何用python设计一个计算器程序_如何使用 50 行 Python 代码制作一个计算器
  11. 代码的检查走查与评审
  12. 计算机一定要学五笔打字吗,学习五笔打字大概要多长时间
  13. 计算机系统与维护专科毕业论文,计算机系统维护毕业设计论文
  14. 红蓝对抗——蓝军(CheckList)总结
  15. 密码忘了用计算机来打开,电脑开机密码忘了怎么办 用U盘修改登录密码方法
  16. 不知不觉,二哥 CSDN 博客访问量破 1000 万了,这个成绩,全网也没几个吧?
  17. 【软件技术基础】01
  18. 弘辽科技:抖音最大对手,有了新变化
  19. jQuery之从零开始的学习(完整整理)
  20. xp计算机如何查看内存大小,怎么查看电脑内存大小_xp怎么看电脑内存大小

热门文章

  1. 第5章 IDA Pro
  2. 防止cpu 一直被占用 sleep(0) 和 yield
  3. centos6虚拟机复制后修改网卡
  4. 学习Nutch不错的系列文章
  5. Asp.net如何截屏
  6. 图解LinkedHashMap原理
  7. 算法 --- 回溯法
  8. FastDFS 文件上传工具类
  9. 专家:大数据等新技术助力信息融合
  10. 正则表达式的基本语法