| 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"而且离开后再也没有任何新的活动。