全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SQL及关系型数据库数据分析
1417 3
2018-03-30
求教mysql和Sql Sever如何去重
表格里再补删表的情况下将表格里的数据如何一步去重
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-4-18 13:26:02
insert into 表名A (字段名列表) select distinct 字段名列表 from 表名B;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-11-12 14:45:09
group by
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2025-2-7 15:33:50
1. MySQL 去重方法
方法 1:使用 DISTINCT 关键字
DISTINCT 可以用于查询时去除重复数据,但不会修改原表。

sql
复制
SELECT DISTINCT * FROM your_table;
方法 2:使用 GROUP BY
通过 GROUP BY 对重复数据进行分组,保留唯一值。

sql
复制
SELECT *
FROM your_table
GROUP BY column1, column2, column3;  -- 根据实际列名分组
方法 3:删除重复数据
如果需要直接删除表中的重复数据,可以使用以下步骤:

创建一个临时表,存储去重后的数据。

删除原表数据。

将临时表数据插入原表。

sql
复制
-- 创建临时表并插入去重数据
CREATE TABLE temp_table AS
SELECT DISTINCT * FROM your_table;

-- 清空原表
TRUNCATE TABLE your_table;

-- 将去重数据插入原表
INSERT INTO your_table
SELECT * FROM temp_table;

-- 删除临时表
DROP TABLE temp_table;
2. SQL Server 去重方法
方法 1:使用 DISTINCT 关键字
与 MySQL 类似,DISTINCT 可以用于查询时去重。

sql
复制
SELECT DISTINCT * FROM your_table;
方法 2:使用 ROW_NUMBER() 窗口函数
通过 ROW_NUMBER() 为重复数据编号,然后删除编号大于 1 的记录。

sql
复制
WITH CTE AS (
    SELECT *,
           ROW_NUMBER() OVER (
               PARTITION BY column1, column2, column3  -- 根据实际列名分组
               ORDER BY (SELECT NULL)
           ) AS rn
    FROM your_table
)
DELETE FROM CTE WHERE rn > 1;
方法 3:删除重复数据
与 MySQL 类似,可以通过临时表实现去重。

sql
复制
-- 创建临时表并插入去重数据
SELECT DISTINCT * INTO #temp_table FROM your_table;

-- 清空原表
TRUNCATE TABLE your_table;

-- 将去重数据插入原表
INSERT INTO your_table
SELECT * FROM #temp_table;

-- 删除临时表
DROP TABLE #temp_table;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群