1. 概述
1.1 应用场景
客户有数据表是存储客户合同信息的,需要检测主键唯一性,且该主键是多字段的联合主键。
1.2 实现思路
使用「数据检测」功能,创建检测规则,选择表级规则,并设置检测对象为「过滤行统计」,输入行范围SQL语句,设计统计内容为行占比期望=1,即满足SQL的数据占比应该是100%,如果不满足,则校验失败,如下图所示:
2. 操作步骤
2.1 创建检测任务
在「数据管理>数据检测」下新建「检测任务」,如下图所示:
2.2 选择检测范围
选择需要检测的数据表,如下图所示:
2.3 设置规则
添加检测规则,设置规则名称,并选择「表级」规则类型,检测对象选择「过滤行统计」,输入行范围 SQL:(select count(1) from DEMO_CONTRACT where 合同ID=DEMO_CONTRACT.合同ID and 客户ID=DEMO_CONTRACT.客户ID)>1
写一个子查询,对于表的每一行,会统计表中具有相同字段1和字段2值的行的数量,添加检测数据字段,同时设置预期范围为「行占比」=1,如下图所示:
即满足多字段的联合主键条件的占比应该是100%,如果不满足,则校验失败。
保存并运行任务。
3. 效果查看
运行结束可看到数据检测成功,行占比=期望值,所有数据均满足联合主键唯一性,如下图所示: