如何使用SQL筛选永久离开组的数字?


| Number | Status       | Time                       |
|--------|--------------|----------------------------|
| 2132   | Group Joined | August 22, 2022, 2:54 PM   |
| 3299   | Group Joined | August 12, 2022, 9:24 PM   |
| 3299   | Group Left   | August 23, 2022, 5:43 PM   |
| 2132   | Group Left   | August 30, 2022, 5:32 PM   |
| 2132   | Group Joined | September 3, 2022, 2:23 PM |

这是一个包含所有细节的表,我只需要永久离开组的数字,这里你可以看到我需要数字3299,因为这个数字从未重新加入组,但我不需要2132,因为这个数字再次加入了组!

我想工作的时间和排序,使一些查询,但我不知道我应该如何写查询。

假设您的time列是真正的日期时间或时间戳列,我们可以在这里使用exists逻辑:

SELECT *
FROM yourTable t1
WHERE Status = 'Group Left' AND
NOT EXISTS (
SELECT 1
FROM yourTable t2
WHERE t2.Number = t1.Number AND
t2.time > t1.time
);

简单来说,上面的查询表示查找状态为"Group Left"而且离开后再也没有任何新的活动。

最新更新