这个sql语句完全删了所有数据,怎样删除多的重复数据,保留重复数据里的一条
时间: 2023-07-22 22:04:48 浏览: 99
非常抱歉,我之前给出的SQL语句有误。如果你想保留重复数据中的一条,可以使用以下SQL语句:
```sql
DELETE FROM tb_kdddd_adm_pac_ftth_gis003_day
WHERE ROWID NOT IN (
SELECT MIN(ROWID)
FROM tb_kdddd_adm_pac_ftth_gis003_day
WHERE vbegday = '20230712'
GROUP BY vdevid
HAVING COUNT(*) > 1
) AND vbegday = '20230712';
```
这个SQL语句使用了子查询来选择在指定日期下存在重复数据的vdevid值。然后,通过外部的DELETE语句,删除除了每个重复数据中的最小ROWID对应的记录之外的所有记录。这样可以保留一条重复数据。
请确保在执行这个操作之前,先备份你的数据以防万一。
相关问题
生成一个sql语句 查出id重复数据,删除重复数据只留一条
你可以使用以下 SQL 语句来查找并删除重复的数据,只保留一条记录:
```sql
DELETE FROM your_table
WHERE id NOT IN (
SELECT MIN(id)
FROM your_table
GROUP BY id
);
```
请将 `your_table` 替换为你要操作的表名。这个语句会根据 `id` 列的值来判断重复数据,并保留每个 `id` 值中最小的行,删除其他重复的行。
怎么删除重复数据,并保留一条的sql语句
假设需要删除的表名为table1,其中有重复数据的字段名为field1和field2,可以使用以下SQL语句删除重复数据并保留一条:
```
DELETE FROM table1 WHERE id NOT IN
(SELECT MAX(id) FROM table1 GROUP BY field1, field2)
```
其中,id为表中的主键字段,该语句会保留每组重复数据中id最大的一条数据,并删除其余重复数据。如果没有主键字段,可以使用其他唯一标识字段代替。
阅读全文