gpt4 book ai didi

sql - 在 MongoDb 中对连续数据进行分组

转载 作者:可可西里 更新时间:2023-11-01 09:53:49 30 4
gpt4 key购买 nike

我有点火数据随时间(按 ASC 顺序)存储在 MongoDB 中,例如:

1. **V_no**              **Ign**           **time** 
2. 001 On 1536721212
3. 001 On 1536721213
4. 001 On 1536721220
5. 001 Off 1536721221
6. 001 Off 1536721222
7. 001 On 1536721234
8. 001 On 1536721256
9. 001 Off 1536721299

我正在寻找的是对连续点火 session 进行分组并且输出如下:

1. **V_no**              **Ign**             **sTime**        **eTime**
2. 001 On 1536721212 1536721220
3. 001 Off 1536721221 1536721222
4. 001 On 1536721234 1536721256
5. 001 Off 1536721299 1536721299

在 R 编程中,可以使用 rleid(Ignition) 对连续点火数据进行分组,例如:

data %>% group(rleid(Ign)) %>% mutate(sTime=first(time),eTime=last(time))

我想要在 MongoDB 或 Mysql 中使用相同类型的解决方案。

最佳答案

如果你有最新版本的 MySQL,那么你可以使用 row_number() :

select v_no, ign, min(time), max(time)
from (select t.*, row_number() over (partition by v_no order by time) as seq1,
row_number() over (partition by v_no, ign order by time) as seq2
from table t
) t
group by v_no, Ign, (seq1- seq2);

关于sql - 在 MongoDb 中对连续数据进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52289261/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com