我有一张像下面这样的桌子。我想通过用户提取记录,忽略在“删除”操作之后发生的任何事情。因此,例如,用户A应该只提取ID 1-4,而用户B应该提取所有ID 6-9。谢谢你的帮助。

发布于 2021-03-23 18:29:37
窗口函数在这里应该工作得很好。
我们只需对属于'Delete'的行进行运行的条件计数,然后对为0的行进行筛选。
SELECT *
FROM (
SELECT *,
COUNT(CASE WHEN [Action] = 'Delete' THEN 1 END) OVER
(PARTITION BY [User] ORDER BY [Id] ROWS UNBOUNDED PRECEDING) AS DeletedAlready
FROM table
) t
WHERE t.DeleteAlready = 0;https://stackoverflow.com/questions/66768211
复制相似问题