我有一个TABLEwith Columns: USER_ID,TIMESTAMP和ACTION
每一行都告诉我哪个用户在某个时间戳做了什么操作。
例子:
我想要一个用户列表,其中包含启动应用程序的第一行和关闭应用程序的最后一行之间的时间差。
这是我尝试这样做的方法:
SELECT USER_ID,DATEDIFF(
(SELECT timestamp FROM MOBILE_LOG WHERE ACTION="START_APP" AND USER_ID="Alice" order by TIMESTAMP LIMIT 1),
(SELECT timestamp FROM MOBILE_LOG WHERE ACTION ="CLOSE_APP" AND USER_ID="Alice" order by TIMESTAMP LIMIT 1)
) AS Duration FROM MOBILE_LOG AS t WHERE USER_ID="Alice";
Run Code Online (Sandbox Code Playgroud)
我要求两个 SELECT 查询之间的 DATEDIFF,但我只得到一个 Alice`s 的列表,其中 -2 作为 Duration。
我在正确的轨道上吗?