mysql - MySQL - 重复计算列中两个值之间的行数
问题描述
我有一张这样的桌子
id | status | data | date
----|---------|--------|-------
1 | START | a4c | Jan 1
2 | WORKING | 2w3 | Dec 29
3 | WORKING | 2d3 | Dec 29
4 | WORKING | 3ew | Dec 26
5 | WORKING | 5r5 | Dec 23
6 | START | 2q3 | Dec 22
7 | WORKING | 32w | Dec 20
8 | WORKING | 9k5 | Dec 10
and so on...
我想要做的是获得两个“START”之间的“WORKING”行数,即
id | status | count | date
----|---------|--------|-------
1 | START | 4 | Jan 1
6 | START | 2 | Dec 22
and so on ...
我正在使用 MySql 5.7.28。
非常感谢任何帮助/建议!
解决方案
date
在示例中不可用,请尝试id
用作排序列
select id, status,
(select count(*)
from mytable t2
where t2.id > t.id and t2.status='WORKING'
and not exists (select 1
from mytable t3
where t3.id > t.id and t3.id < t2.id and status='START')
) count,
date
from mytable t
where status='START';
推荐阅读
- node.js - 我应该从数据库验证 JWT 令牌信息吗?
- java - 无法解决:com.google.android.gms:play.services-vision
- html - 具有长字的表格单元格尊重最大宽度而不是宽度
- c++ - Abstract 和 Derived 结合 std::list
- python-3.x - 任何人都可以帮助从文件中获取仅字典格式的数据(如下所示的数据示例)
- javascript - 将 Duo Web 2 因素身份验证与 ColdFusion 集成
- firebase - 如何有效地将计时器更新到 Firestore?
- javascript - 如何在这个简单的程序中避免回调地狱?
- javascript - 从 ejs 文件中导出变量
- list - pandas中pyspark数据框的匹配索引