注册

sql语句怎么去重

有四种 sql 去除重复值的方法:1. 使用 distinct 关键字;2. 使用 group by 子句;3. 使用 over partition by 子句;4. 使用子查询。

SQL去除重复值的常用方法

1. DISTINCT关键字

DISTINCT关键字用于从结果集中删除重复的行。它将仅返回每个组中唯一的一行。

语法:

SELECT DISTINCT column_name
FROM table_name;

例如:

SELECT DISTINCT name
FROM students;

2. GROUP BY子句

GROUP BY子句根据指定的列对结果集进行分组,并只返回每个组的聚合值(如COUNT、SUM)。通过使用GROUP BY子句,可以有效地消除重复值。

语法:

SELECT column_name
FROM table_name
GROUP BY column_name;

例如:

SELECT name
FROM students
GROUP BY name;

3. OVER PARTITION BY

OVER PARTITION BY子句允许根据指定的列对结果集进行分区,并为每个分区计算聚合值。它可以用来处理更加复杂的去重需求。

语法:

SELECT column_name,
       ROW_NUMBER() OVER (PARTITION BY column_name) AS row_num
FROM table_name;

例如:

SELECT name,
       ROW_NUMBER() OVER (PARTITION BY name) AS row_num
FROM students;

4. 子查询

子查询可以用来从表中选择唯一的值。通过将子查询作为主查询中的条件,可以有效地实现去重。

语法:

SELECT column_name
FROM table_name
WHERE column_name IN (
    SELECT DISTINCT column_name
    FROM table_name
);

例如:

SELECT name
FROM students
WHERE name IN (
    SELECT DISTINCT name
    FROM students
);

以上就是sql语句怎么去重的详细内容,更多请关注CTO智库其它相关文章!