SQL如何查询到最大连续的数据?

sixgj 2020-07-10 10:05:16
AutoId 订单编号 不合格 时间
1 A 1 2014-11-1
2 B 0 2014-11-2
3 A 1 2014-11-3
4 A 1 2014-11-4
5 A 0 2014-11-5
6 B 1 2014-11-6


统计 同一订单的连续合格的最大个数的数据,结果如下:

编号 订单编号 不合格 时间
3 A 1 2014-11-3
4 A 1 2014-11-3
5 A 1 2014-11-4
6 B 1 2014-11-6
...全文
1137 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
他的意思是连续的订单编号,且 不合格 = 1
BlueStorm 2021-02-24
  • 打赏
  • 举报
回复
编号 订单编号 不合格 时间 3 A 1 2014-11-3 4 A 1 2014-11-4 6 B 1 2014-11-6 请问上面什么地方连续? 编号(3、4、6)肯定不是连续的。
  • 打赏
  • 举报
回复
也就是符合条件的订单编号B最大连续只有一条
BlueStorm 2021-02-24
  • 打赏
  • 举报
回复
对于编号5的订单,不合格=0,编号4、5、6明显不连续。 上面的编号6跟谁连续?
  • 打赏
  • 举报
回复
不行的,一旦订单记录删除、修改了,你的状态表就失效了,这个必须每次查询才行
墨梅无痕 2021-02-23
  • 打赏
  • 举报
回复
或者干脆增加一个表,用来记录生产活动中的质量控制的各种状态。
墨梅无痕 2021-02-23
  • 打赏
  • 举报
回复
这个很简单啊,在表中增加一个字段,专门用来记录连续合格的累计值就可以了,每遇到不合格了就重置为0。
  • 打赏
  • 举报
回复
引用 13 楼 liups 的回复:
引用 12 楼 早打大打打核战争 的回复:
不行的,一旦订单记录删除、修改了,你的状态表就失效了,这个必须每次查询才行
你前面不是说了存储过程么


这个回复是对#11的方法说的
liups 2021-02-23
  • 打赏
  • 举报
回复
引用 12 楼 早打大打打核战争 的回复:
不行的,一旦订单记录删除、修改了,你的状态表就失效了,这个必须每次查询才行
你前面不是说了存储过程么
doloopcn 2021-02-21
  • 打赏
  • 举报
回复
这个应该问错版块了,应该去SQL版块问
zrssweet 2021-02-21
  • 打赏
  • 举报
回复
连续的定义是什么,时间吗?同一时间有多个订单怎么办
  • 打赏
  • 举报
回复
感觉用纯SQL实现不了,因为RDBMS的数学基础是过滤和投影运算,对表中记录的顺序并无要求,而楼主的问题严重依赖记录间的相对位置关系,比如改变一下排序条件就会产生不同的结果。所以楼主的问题只能用程序(用存储过程也可以)扫描数据集来实现。
sixgj 2020-07-16
  • 打赏
  • 举报
回复
引用 3 楼 咸鱼爱翻身 的回复:
不太知道你的编号5数据是怎么出来的。可以尝试排名函数


是我写错了应该没有编号5,5是不合格的。A只有两个连续。
编号 订单编号 不合格 时间
3 A 1 2014-11-3
4 A 1 2014-11-4
6 B 1 2014-11-6
xrbaa 2020-07-15
  • 打赏
  • 举报
回复
这个有点儿意思,难度不小啊。
咸鱼爱翻身 2020-07-14
  • 打赏
  • 举报
回复
不太知道你的编号5数据是怎么出来的。可以尝试排名函数
sixgj 2020-07-14
  • 打赏
  • 举报
回复
普通的Delphi +MySQL
薛定谔之死猫 2020-07-12
  • 打赏
  • 举报
回复
说下数据库类型,复杂sql支持程度不一样的

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧