我有一个TABLE
,其中包含列:USER_ID
、TIMESTAMP
和ACTION
每一行告诉我哪个用户在特定的时间戳执行了什么操作。
例子:
- Alice 在 2014-06-12 16:37:46 启动应用程序
- Alice 在 2014-06-12 17:48:55 停止应用程序
我想要一个用户列表,其中包含他们启动应用程序的第一行和关闭它的最后一行之间的时间差。
以下是我的尝试方法:
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";
我要求两个SELECT查询之间的DATEDIFF,但我只得到了一个带有-2持续时间的Alice名单。
我是否在正确的轨道上?
YYYY-MM-DD HH:MI:SS
),请告诉我。 - neshkeev