楼主: escaflowne1985
1475 3

[疑难问题] 求教mysql和Sql Sever如何去重 [推广有奖]

  • 0关注
  • 16粉丝

学科带头人

20%

还不是VIP/贵宾

-

威望
0
论坛币
38688 个
通用积分
301.4565
学术水平
78 点
热心指数
113 点
信用等级
72 点
经验
21007 点
帖子
3602
精华
1
在线时间
258 小时
注册时间
2017-7-2
最后登录
2025-4-7

楼主
escaflowne1985 在职认证  发表于 2018-3-30 16:06:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
求教mysql和Sql Sever如何去重
表格里再补删表的情况下将表格里的数据如何一步去重
二维码

扫码加我 拉你入群

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

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

关键词:Sever MySQL Ever sql EVE

沙发
kejiayuan0806 在职认证  发表于 2018-4-18 13:26:02
insert into 表名A (字段名列表) select distinct 字段名列表 from 表名B;

藤椅
guzhentiancai 发表于 2024-11-12 14:45:09
group by

板凳
flyman150 发表于 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;

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 11:09