SQL数据清洗实用技巧
在数据处理过程中,我们常常需要将数据从一个数据源提取并导入到关系型数据库中。数据源可能包括电子表格、CSV文件、其他数据库等。在这个过程中,由于源数据类型和目标数据类型的差异,可能会出现转换问题,此时就需要对源数据进行检查,确保其可以加载到目标数据库中。这些确保数据符合目标数据库业务规则的操作,被广泛称为数据清洗(或数据清理)。下面我们将介绍一些常见的SQL数据清洗技巧。
1. 检测重复行
- 问题描述 :当尝试为表添加主键约束时,可能会收到“ORA - 02437: cannot validate (STAR1.D_PRODS_PK) - primary key violated”错误,这意味着表中存在重复行,需要找出这些重复行。
- 解决方案 :使用带有
GROUP BY
和HAVING COUNT
子句的SELECT
语句。例如,要显示PARTIES
表中基于PARTY_ID
列的重复行,可以使用以下代码:
select
count(*)
,party_id
from parties
group by party_id
having count(*) > 1;
示例输出如下:
| COUNT( ) | PARTY_ID |
|---------