sql语句怎么去重-SQL
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 );
登录后复制