筛选或者删除数据表中重复的数据
1.筛选重复的记录
http://stackoverflow.com/questions/8190541/deleting-duplicate-rows-from-sqlite-database
select s.*,t.[count]
from filelist as s
inner join (
select ProjectId,SensorId, FileName, count(*) as [count]
from filelist
group by SensorId, FileName
having count(*) > 1
) as t
on s.ProjectId = t.ProjectId and s.SensorId = t.SensorId and s.FileName = t.FileName
需要注意的是group by筛选出来的数据,只是重复数据中的1条
If you want to find duplicate data (by one or several criterias) and select the actualrows.
This should also work, maybe give it try. SELECT id, COUNT(id) FROM table1 GROUP BY id HAVING COUNT(id)>1;
I think this will work properly to search repeated values in a particular column.
SELECT gid_Sensorinfo, COUNT(gid_Sensorinfo) FROM rel_testareasensor GROUP BY gid_Sensorinfo HAVING COUNT(gid_Sensorinfo)>1;
Example
列出重复的记录,以及每一个记录重复了多少次
SELECT ViewName , COUNT(ViewName) AS [Count] FROM dbo.tbm_vie_View GROUP BY ViewName HAVING COUNT(ViewName) > 1;
筛选出重复的数据,可以包含重复数据的所有列
SELECT ViewID , DynamicEntityID , ViewName , ViewDescription FROM tbm_vie_View WHERE ViewName IN ( SELECT ViewName FROM dbo.tbm_vie_View GROUP BY ViewName HAVING COUNT(ViewName) > 1 );
2.删除重复的记录
http://stackoverflow.com/questions/8190541/deleting-duplicate-rows-from-sqlite-database
You need a way to distinguish the rows. Based on your comment, you could use the special rowid column for that.
To delete duplicates by keeping the lowest rowid
per (hash,d)
:
delete from YourTable where rowid not in ( select min(rowid) from YourTable group by hash , d )
作者:Chuck Lu GitHub |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了