问一个面试中问题

来源:7-3 慢查询日志实例

伟大的五年

2018-09-06

图片描述
time 表示时间时间点,location表示一个地理位置, 查询要求 至少 t个连续时间内,n个用户在同一个位置。 老师这个sql怎么写,主要是连续时间不好算。

写回答

1回答

sqlercn

2018-09-06

可以试试这样来查

SELECT *

FROM locations a JOIN locations b 

ON a.`time`=b.time+1 

AND a.`locations`=b.`locations`

0
16
sqlercn
回复
伟大的五年
SELECT a.`time`,b.time,b.`time`-a.`time`,a.cnt,b.cnt FROM ( SELECT TIME,locations,COUNT(*) AS cnt FROM locations GROUP BY TIME,locations HAVING COUNT(*)>1 ) a JOIN ( SELECT TIME,locations,COUNT(*) AS cnt FROM locations GROUP BY TIME,locations HAVING COUNT(*)>1 ) b ON a.`time`=b.`time`-1 基本上就是这样了
2018-09-07
共16条回复

MySQL提升课程 全面讲解MySQL架构设计

面面俱到讲解影响MySQL性能的各个因素,让MySQL架构了然于胸。

4419 学习 · 547 问题

查看课程