0

我想知道是否有可能有一个 SQL 命令在接下来的 24 小时内从表中返回每个唯一的用户 ID 以及包含该用户 ID 的行。

因此,例如,我可能有一个结构如下的表:

id | userID | action | date

有一堆行,有数千个唯一的用户 ID、几十个不同的操作和日期。我基本上对每个用户 ID 在前 24 小时内执行的操作感兴趣,但这适用于所有用户。

所以我应该为每个用户 ID 获得 10-15 个不同的操作,每个用户 ID 将在不同的日子、几个月甚至几年内注册,所以它不仅仅是在特定的 24 小时内获取所有操作。

4

1 回答 1

3

如果我正确理解您的问题,您可以使用如下查询:

SELECT a1.*
FROM
  actions a1 INNER JOIN (SELECT   userID, MIN(date) first_action
                         FROM     actions
                         GROUP BY userID) a2
  ON a1.userID = a2.userID AND a1.date <= first_action + INTERVAL 24 HOUR

在此处查看小提琴。此查询将返回每个用户在第一次操作后的前 24 小时内执行的所有操作。

于 2013-06-25T22:26:00.760 回答