mysql - SQL Query 从表中获取不同的值以及有序行之间的差异
问题描述
我有一个带有不同数据点时间戳的实时数据表 Time_stamp, UID, Parameter1, Parameter2, ....
我有 400 个 UID,所以每个 time_stamp 重复 400 次
我想编写一个使用此表的查询来检查流向 SQL 数据库的实时数据流是否按预期工作 - 每 5 分钟应该有新的时间戳可用
为此,我通常做的是查询表中 time_stamp 的 DISTINCT 值并按降序排列 - 进行目视检查并复制到 excel 以计算后续不同 time_stamp 之间的分钟差
超过 5 分钟的任何差异都意味着我有问题。我试图弄清楚如何在 SQL 中做类似的事情,也许得到一个看起来像这样的表。尝试同时使用 LEAD 和 DISTINCT 但无法自己编写代码,我刚刚开始使用 SQL
Time_stamp,领先于最后一个时间戳
谢谢您的帮助
解决方案
您可以使用lag
如下分析函数:
select t.* from
(select t.*
lag(Time_stamp) over (order by Time_stamp) as lg_ts
from your_Table t)
where timestampdiff('minute',lg_ts,Time_stamp) > 5
或者你也可以使用not exists
如下:
select t.*
from your_table t
where not exists
(select 1 from your_table tt
where timestampdiff('minute',tt.Time_stamp,t.Time_stamp) <= 5)
and t.Time_stamp <> (select min(tt.Time_stamp) from your_table tt)
推荐阅读
- javascript - 循环遍历对象数组时,如何将对象值推送到新数组中?
- pandas - 仅在满足特定条件后如何将标题行添加到 df.to_csv 输出文件
- c - 使用 c 中只有 1 个条目的递归计算 1 个数组的总和
- javascript - Discord.js Reaction 打印格式问题
- javascript - 带有签名的 4 字节 int 的 protobuf 消息前缀
- vim - 如何让 Vimwiki 显示括号而不生成链接
- expo - 有没有博览会专业人士可以告诉我我做错了什么?(世博会)
- javascript - 如何在 HTML 前端使用 res.data?
- python - 在 Python 中的 2 个图像之间翻转
- python - 从 db Django Rest_framework View 函数中删除用户