我正在尝试在SQL中连接两个表来进行一些分析。
我想在操作之前找出最后的事件,这样我就可以确定哪些事件紧接在某个操作之前。
在actions表中,我有包含
的行在事件表中,我有包含
的行这些行动不会与前一事件同时发生。
我想编写一个查询,该查询总结了紧接在其之前的Event_Type执行操作的用户数。
例如,如果我们对单个User_ID有以下年表:
事件>事件> 活动>行动>事件
我想以粗体标识事件的Event_Type,并根据它对用户进行计数。例如,输出将是 -
| Event_Type | Number of Users |
--------------------------------
| Some Event | 100 |
| Some other | 200 |
这是我对查询的第一次尝试 - 但它不起作用,我想也许我没有以正确的方式思考它。
SELECT COUNT(T_Actions.User_ID), T_Events.Event_Type
FROM T_Actions
LEFT JOIN T_Events ON T_Actions.User_ID=T_Events.User_Id
WHERE T_Events.Event_Time =
(SELECT T_Events.Event_Time
FROM T_Events
WHERE T_Events.Event_Time < T_Actions.Event_Time
ORDER BY T_Events.Event_Time DESC
LIMIT 1)
GROUP BY T_Events.Event_Type
;
这是一个SQL小提琴 - http://sqlfiddle.com/#!9/865e62/1/0
非常感谢!