有四种 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智库其它相关文章!