在SQL中,过滤重复数据可以通过多种方式实现,以下是几种常见的方法:
使用 `DISTINCT` 关键字
`DISTINCT` 关键字可以用来返回唯一不同的值。
```sql
SELECT DISTINCT column1, column2
FROM table_name;
```
这个查询会返回 `column1` 和 `column2` 列的唯一组合。
使用 `GROUP BY` 语句
你可以使用 `GROUP BY` 语句与聚合函数一起使用,来消除重复数据。
```sql
SELECT column1, column2, COUNT()
FROM table_name
GROUP BY column1, column2;
```
这个查询会按 `column1` 和 `column2` 的组合分组,并返回每个组合的计数。如果你想要所有列都是唯一的,你可以在 `GROUP BY` 后面列出所有列。
使用 `HAVING` 子句
`HAVING` 子句可以用来过滤 `GROUP BY` 后的结果。
```sql
SELECT column1, column2, COUNT()
FROM table_name
GROUP BY column1, column2
HAVING COUNT() = 1;
```
这个查询只会返回每个组合出现一次的记录。
使用 `ROW_NUMBER()` 函数
```sql
WITH RankedRecords AS (
SELECT column1, column2, ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY (SELECT NULL)) AS rn
FROM table_name
)
SELECT column1, column2
FROM RankedRecords
WHERE rn = 1;
```
这个查询会为每个 `column1` 和 `column2` 的组合分配一个唯一的序号,然后只选择序号为1的记录。
根据你的数据库管理系统(DBMS)和具体需求,你可以选择上述方法中的一种或几种来过滤重复数据。