mysql - mySQL 查询以按类型查找一系列事件的第一个事件
问题描述
我在 mySQL 中有一个事件表,它存储可以以success
或状态结束的事件failed
。
我希望找到最后一个失败事件系列中的第一个失败。
例如:
id time status
------------------
1 10:00 success
2 10:01 success
3 10:03 failed
4 10:04 failed
5 10:05 success
6 10:06 success
8 10:07 failed
9 10:07 failed
10 10:07 failed
我需要一个将返回的查询8 10:07 failed
最后一次失败事件系列的第一次失败
可能需要使用我不太擅长的窗口函数。
有人可以帮忙吗?
非常感谢。
解决方案
我确信还有另一种方法可以做到这一点,但我经常使用内部查询来做到这一点,并利用 min group by。
select
d.*
from data d
inner join (
select
min(id) id,
time
from data
group by time
) l on d.id = l.id
这是实践中的 SQL Fiddle
推荐阅读
- foreach - 在 ForEach 循环中调用函数
- jupyter-notebook - iptables 与 jupyter notebook 相遇
- ios - UICollectionView 对动画无响应
- javascript - DISCORD.JS 在死亡时重新启动分片
- laravel - 为什么可选参数通过而删除参数在策略测试中失败?
- python - 如何使这个功能更快?
- php - PHP 无法识别 CSV 文件
- python - 如何从 jupyter notebook 中的后台线程访问打印输出
- javascript - 如何在 typeorm 中使用 userId 或 null 查找?
- typescript - 打字稿中的默认字符串类型值