查找用户下车的时间和地点

时间:2015-08-13 13:37:04

标签: mysql sql

让我们假设我们有一个数据库,当用户在特定页面上时会记录该数据库。当用户执行某些操作时,我们会记录该操作。当用户在页面(屏幕)上完成操作时,我们就完成了记录。

只有当用户完成特定页面时,他才能转到另一页面。所以我们需要找出所有没有进入下一个屏幕的人。屏幕数量有限。

这可以通过一个查询完成吗?

我尝试使用此查询为每个屏幕执行此操作:

select uid from logs where screenid=1 and uid not in (
select uid from logs where act='done' and screenid=1);

我能够找到因特定屏幕而卡住的人。

enter image description here

1 个答案:

答案 0 :(得分:0)

我查了几个stackoverflow问题并找到了

select * from logs as log1 right join(
select max(logtime) as maxLogTime, uid
from logs
group by uid ) as log2
on log2.uid = log1.uid and
log1.logTime = log2.maxLogTime;

是查询解决方案。

也可以试试这个(不是一个好技术):

select * from (
select * from logs 
order by logtime desc) as logDesc 
group by logDesc.uid;