要从SQL表中删除重复记录,首先需要确定哪些记录被认为是重复的。通常,这是基于一个或多个列的值来判断的。以下是一个基本的步骤和示例,用于删除重复记录:
GROUP BY
和HAVING
子句找出重复的记录。DELETE
语句删除不需要的重复记录。假设我们有一个名为employees
的表,其中first_name
和last_name
列可能存在重复记录,我们想要保留每组重复记录中id
最小的那一条。
WITH duplicates AS (
SELECT first_name, last_name
FROM employees
GROUP BY first_name, last_name
HAVING COUNT(*) > 1
),
to_delete AS (
SELECT e.id
FROM employees e
JOIN duplicates d ON e.first_name = d.first_name AND e.last_name = d.last_name
WHERE e.id NOT IN (
SELECT MIN(id)
FROM employees
GROUP BY first_name, last_name
)
)
DELETE FROM employees
WHERE id IN (SELECT id FROM to_delete);
first_name
和last_name
组合。id
最小的那一条之外的所有记录的id
。to_delete
CTE中列出的所有记录。通过以上步骤和示例代码,可以有效地从SQL表中删除重复记录。
领取专属 10元无门槛券
手把手带您无忧上云