我正在执行转换分析,只需查看每个User_ID的第一次转换后的活动。
我可以使用此查询找到每个用户的第一次转换时间:
select min([Time]), [User_ID]
from [Table_1]
where [Event_Type] = 2 --just a filter for conversions
group by [User_ID]
但是,现在我想删除[Table1]中每个[User_ID]的所有数据,在特定的分钟([时间]之后)。我该怎么做?
感谢任何帮助!
答案 0 :(得分:1)
您可以使用CTE + ROW_NUMBER
:
With CTE AS
(
SELECT [Time], [User_ID],
RN = ROW_NUMBER() OVER (Partition By [User_ID] ORDER BY [Time])
FROM Table1
WHERE [Event_Type] = 2
)
DELETE FROM CTE WHERE RN > 1
如果您不想删除除一条记录以外的所有记录,但所有记录的时间与每个用户的最短时间不同(如果有关系),请改用DENSE_RANK
。如果您想查看要删除的内容,请使用SELECT *
。