SQL去重的方法有哪些?
时间: 2024-09-26 15:07:19 浏览: 38
浅谈sql数据库去重
5星 · 资源好评率100%
SQL中有几种常见的去重(去除重复记录)方法:
1. **DISTINCT关键字**:这是最直接的方式,在SELECT语句中使用DISTINCT关键字,可以返回所有不重复的列值组合。
```sql
SELECT DISTINCT column_name(s) FROM table_name;
```
2. **GROUP BY**:当基于一个或多个列对数据进行分组时,未包含在GROUP BY子句中的列将自动去重。每个组只有一个唯一的行。
```sql
SELECT column_name(s) FROM table_name GROUP BY column_to_group;
```
3. **UNION ALL**:如果想要合并两个或更多的查询结果并去除重复行,可以使用UNION ALL而不是UNION,因为UNION会自动去除重复项。
```sql
SELECT column_name(s) FROM table1 UNION ALL SELECT column_name(s) FROM table2;
```
4. **ROW_NUMBER()函数**:在某些数据库系统如SQL Server中,可以利用窗口函数ROW_NUMBER()配合HAVING子句实现去重。
```sql
WITH CTE AS (
SELECT *, ROW_NUMBER() OVER(PARTITION BY column_to_unique ORDER BY (SELECT NULL)) AS row_num
FROM table_name
)
SELECT * FROM CTE WHERE row_num = 1;
```
阅读全文