选择值并在SQL中连接表

时间:2017-09-26 14:59:00

标签: mysql

我正在尝试在SQL中连接两个表来进行一些分析。

  • SQL表1:操作
  • SQL表2:事件

我想在操作之前找出最后的事件,这样我就可以确定哪些事件紧接在某个操作之前。

我的桌子

在actions表中,我有包含

的行
  • EVENT_TIME
  • USER_ID

在事件表中,我有包含

的行
  • EVENT_TIME
  • EVENT_TYPE
  • USER_ID

这些行动不会与前一事件同时发生。

我的查询

我想编写一个查询,该查询总结了紧接在其之前的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

非常感谢!

0 个答案:

没有答案