首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sql根据条件计算派生数据

Sql根据条件计算派生数据
EN

Stack Overflow用户
提问于 2021-08-05 14:41:00
回答 1查看 29关注 0票数 0

我在mysql数据库中有一个数据表,其中包含时间序列数据

代码语言:javascript
复制
**Table Sensor Data**  
ID    uuid  server_time
1      a    2021-07-29 11:36:15
2      b    2021-07-29 11:36:15
3      a    2021-07-29 12:36:15
4      b    2021-07-29 11:39:15

现在,对于每个具有给定uuid的传感器,如果根据server_time的下一次数据输入间隔超过30分钟,则将其视为离线输入,如果间隔小于30分钟,则将其视为在线输入。我需要找到一个月内在线条目和离线条目的总数。因为这个数据非常大,所以我不想在应用程序中这样做。如何使用查询或某些函数/脚本在数据库中完成此操作?

EN

回答 1

Stack Overflow用户

发布于 2021-08-05 15:08:18

您可以使用lead()和聚合:

代码语言:javascript
复制
select year(server_time), month(server_time),
       sum( next_server_time < server_time + interval 30 minute ) as cnt_online,
       sum( next_server_time >= server_time + interval 30 minute ) as cnt_offline
from (select sd.*,
             lead(server_time) over (partition by uuid) as next_server_time
      from sensordata sd
     ) sd
group by year(server_time), month(server_time)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68668721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档