让我们假设我们有一个数据库,当用户在特定页面上时会记录该数据库。当用户执行某些操作时,我们会记录该操作。当用户在页面(屏幕)上完成操作时,我们就完成了记录。
只有当用户完成特定页面时,他才能转到另一页面。所以我们需要找出所有没有进入下一个屏幕的人。屏幕数量有限。
这可以通过一个查询完成吗?
我尝试使用此查询为每个屏幕执行此操作:
select uid from logs where screenid=1 and uid not in (
select uid from logs where act='done' and screenid=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;