SQL数据清洗的几种方法!

数据库 · 2023-12-25 · 5218 人浏览
SQL数据清洗的几种方法!

数据清洗.png
这个问题我以前没遇到过,也是最近用MySQL数据库的时候才发现的问题,然后查询资料,最后总结如下:

1、处理重复数据

1.1 处理重复行

SELECT your_column, COUNT(*)
FROM your_table
GROUP BY your_column
HAVING COUNT(*) > 1;

1.2 删除重复行

WITH DuplicateCTE AS (
  SELECT your_column, ROW_NUMBER() OVER (PARTITION BY your_column ORDER BY your_column) AS row_num
  FROM your_table
)
DELETE FROM DuplicateCTE
WHERE row_num > 1;

2、规范化数据格式

2.1 更改大小写:将列值转换成大写

UPDATE your_table
SET your_column = UPPER(your_column);

2.2 去除空格:去除前导和尾随空格

UPDATE your_table
SET your_column = TRIM(your_column);

3、规范化数据格式

3.1 转换数据类型:将字符串列转换为整数

ALTER TABLE your_table
ALTER COLUMN your_column TYPE INTEGER
USING your_column::INTEGER;

3.2 处理日期格式:将字符串日期列转换为日期类型

ALTER TABLE your_table
ALTER COLUMN your_date_column TYPE DATE
USING TO_DATE(your_date_column, 'YYYY-MM-DD');

4、规范化数据格式

4.1 确定缺失值:统计表中缺失数量

SELECT COUNT(*) AS missing_count
FROM your_table
WHERE your_column IS NULL;

4.2 删除具有缺失值的行:删除具有缺失值的行

DELETE FROM your_table
WHERE your_column IS NULL;

4.3 填充缺失值:用平均值填充缺失值

UPDATE your_table
SET your_column = (SELECT AVG(your_column) FROM your_table WHERE your_column IS NOT NULL)
WHERE your_column IS NULL;
MySQL 数据清洗