sql 根据类型删除数据保留最新数据2000条
时间: 2023-12-08 10:04:12 浏览: 87
可以使用以下 SQL 语句来根据类型删除数据保留最新数据2000条:
```
DELETE FROM 表名
WHERE 类型 = '指定类型' AND id NOT IN (
SELECT id FROM (
SELECT id FROM 表名
WHERE 类型 = '指定类型'
ORDER BY 时间 DESC
LIMIT 2000
) t
);
```
其中,表名为要操作的数据库表名,类型为要删除的数据类型,时间为用来排序的时间字段,id 为唯一标识数据的字段。这个 SQL 语句会删除除了最新的2000条数据之外的其他数据。
相关问题
sql 删除数据保留最新数据2000条
可以使用如下的 SQL 语句来删除数据表中除最新2000条数据外的所有数据:
```
DELETE FROM table_name
WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM table_name
ORDER BY id DESC
LIMIT 2000
) as t
);
```
其中,`table_name` 为要删除数据的表名,`id` 为该表的主键。这条 SQL 语句的意思是,先按照 `id` 降序排列,然后选择前2000条数据的 `id`,最后删除不在这个列表中的所有数据。这样,就可以保留最新的2000条数据了。
我有一张数据表,需要根据工号字段查询出全部重复的数据,并且删除重复的数据,只保留一条,sql如何写
您好,以下是根据工号字段查询出全部重复的数据,并且删除重复的数据,只保留一条的 SQL 语句:
```
DELETE FROM table_name WHERE id NOT IN (SELECT MIN(id) FROM table_name GROUP BY job_number);
```
其中,table_name 是您的数据表名,job_number 是您的工号字段名。这条 SQL 语句会删除表中除了每个工号最小 id 对应的记录以外的所有记录,从而达到删除重复数据的目的。
阅读全文