Files
chill_notes/数据库/去重.md
2026-04-21 21:15:34 +08:00

58 lines
989 B
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 数据去重方法
> SQL Server 数据去重常用方法
## 方法一:使用 DISTINCT
```sql
SELECT DISTINCT * FROM TableName
```
## 方法二:临时表去重
```sql
BEGIN TRAN
-- 1. 选中不重复的数据到临时表
SELECT DISTINCT * INTO #temp FROM DataSyncStationSX
-- 2. 删除原表数据
DELETE FROM DataSyncStationSX
-- 3. 从临时表导回
INSERT INTO DataSyncStationSX SELECT * FROM #temp
-- 4. 删除临时表
DROP TABLE #temp
COMMIT
```
## 方法三ROW_NUMBER 去重
```sql
-- 删除重复数据,保留最新一条
DELETE FROM TableName
WHERE ID IN (
SELECT ID FROM (
SELECT ID, ROW_NUMBER() OVER (PARTITION BY duplicate_column ORDER BY created_time DESC) AS rn
FROM TableName
) t
WHERE rn > 1
)
```
## 方法四:查找重复数据
```sql
-- 查找重复记录
SELECT column1, column2, COUNT(*) as cnt
FROM TableName
GROUP BY column1, column2
HAVING COUNT(*) > 1
```
---
> ⚠️ 执行删除前请先备份数据!