25 lines
640 B
SQL
25 lines
640 B
SQL
-- 清理 UserView 表中的重复记录
|
||
-- 保留每对用户(UserId + TargetUserId)的最新一条记录
|
||
|
||
-- 首先查看有多少重复记录
|
||
SELECT UserId, TargetUserId, COUNT(*) as cnt
|
||
FROM UserView
|
||
GROUP BY UserId, TargetUserId
|
||
HAVING COUNT(*) > 1;
|
||
|
||
-- 删除重复记录,保留 Id 最大的那条(即最新的)
|
||
DELETE FROM UserView
|
||
WHERE Id NOT IN (
|
||
SELECT MaxId FROM (
|
||
SELECT MAX(Id) as MaxId
|
||
FROM UserView
|
||
GROUP BY UserId, TargetUserId
|
||
) AS KeepRecords
|
||
);
|
||
|
||
-- 验证清理结果
|
||
SELECT UserId, TargetUserId, COUNT(*) as cnt
|
||
FROM UserView
|
||
GROUP BY UserId, TargetUserId
|
||
HAVING COUNT(*) > 1;
|