sql查重、去重(留一)

前言

当我们的项目上线后就会发现用户并不会按照预想设想的方式去使用,因此提前设置好的检查代码并不会完全拦住用户的违规操作。因此,经常会出现重复的数据。而对于我正在维护的项目来说,一旦出现重复数据就是致命的问题,因为他要进行金额的核算。因此掌握sql查重、去重的操作是必备的。

PS:接手这个项目要做的第一个任务就是查询导入数据的时候出现了重复。

一、sql查重

重复数据分为两种情况:一是,整条数据一摸一样包括id,当然这种情况很少出现;二是,用来判断数据唯一性的字段出现了重复,比如存储人员信息的表格中姓名和身份证号码出现了两条数据,导致在计算该用户的金额的时候系统报错

SELECT name, id_card,count(*) as num
FROM user
WHERE 1=1  GROUP BY name,id_card HAVING count(*)>1;

select出的只能是group by分组的字段,这个的原因大概是因为其他字段有不重复的无法判断出应该显示哪个字段.

使用该语句就可显示出重复的数据,主要利用的是group by 分组的功能对指定字段进行分组

二、sql去重

查出重复数据后就要对重复数据进行清除,但是我们还需保留一条数据用于后续的操作处理,因此去重时还要保留一条数据

delete from user a where (a.name, a.id_card) in (
	select name, id_card 
	from user 
	group by name,id_card 
	having count(*) >1
) and rowid not in (
	select max(rowid) 
	from user 
	group by name,id_card 
	having count(*) >1
)

通过name,id_card 字段进行判断是否为重复数据,又利用rowid保存一条数据(通过max() 函数可以保留较大的rowid的数据,利用min() 函数就可以保留较小的rowid的数据),因此达到了去重留一的目的

个人理解可能错误,望诸位评论区纠正!!

### starRC、LEF 和 DEF 文件的 EDA 工具使用教程 #### 关于 starRC 的使用说明 starRC 是由 Synopsys 开发的款用于寄生参数提取 (PEX) 的工具,在 detail routing 完成之后被调用,以提供精确的电阻电容延迟分析数据[^2]。该工具能够处理复杂的多层互连结构并支持多种工艺节点。 对于 starRC 的具体操作指南,通常可以从官方文档获取最权威的信息。访问 Synopsys 官方网站的技术资源页面,可以找到最新的产品手册以及应用笔记等资料。此外,还可以通过在线帮助系统获得交互式的指导和支持服务。 #### LEF 和 DEF 文件格式解析及其在 Cadence 中的应用 LEF(Library Exchange Format)和 DEF(Design Exchange Format)是两种广泛应用于集成电路布局布线阶段的标准文件格式之[^3]。前者主要用于描述标准单元库中的元件几何形状;后者则记录了整个芯片版图的设计信息,包括但不限于各个模块的位置关系、网络连接情况等要细节。 当涉及到这些文件类型的编辑或读取时,Cadence 提供了系列强大的平台级解决方案,比如 Virtuoso Layout Editor 就可以直接打开并修改 LEF/DEF 格式的项目工程。为了更好地理解和运用这两种文件格式,建议参阅 Cadence 发布的相关培训材料或是参加其举办的专项课程学习活动。 ```bash # 示例命令:查看 LEF 或 DEF 文件内容 cat my_design.lef cat my_design.def ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值