十条命令,精通SQL数据清洗、集成和转换

数据库2025-11-04 07:46:4157567

数据准备是十条命令数据分析师工作中非常重要的一部分。在进行数据分析之前,精通据清必须对数据进行准备,洗集以确保数据呈现出自己和其他人都能理解的成和格式,从而为后续工作铺平道路。转换

实际上,十条命令数据准备阶段通常占据了整个数据分析工作的精通据清80%多的的工作量。这个阶段的洗集任务是整理和清理数据,以确保其质量和一致性,成和并进行必要的转换数据集成和转换,以满足分析需求。十条命令

十条命令,精通SQL数据清洗、集成和转换

1 数据清洗

数据清洗是精通据清将数据格式化并符合要求,通过删除或修复不正确或不一致的洗集部分来实现。

以下是成和其中的常见任务:

1.1 消除重复项

获取唯一的记录

复制SELECT DISTINCT order_id FROM orders;1.

获取该属性的第一条唯一记录

复制SELECT DISTINCT ON ( customer_id ) * FROM orders;1.

1.2 处理缺失值

选择列表中第一个非空值

复制SELECT COALESCE ( order_date , CURRENT_DATE ) FROM orders;1.

订单金额为 0 时应视为无效

复制SELECT NULLIF ( order_amount , 0 ) FROM orders;1.

CASE 用于为缺失值赋予新的身份

复制SELECT CASE WHEN order_amount > 1000 THEN High WHEN order_amount BETWEEN 500 AND 1000 THEN Medium WHEN order_amount < 500 THEN Low ELSE Unknown;1.

1.3  标准化不匹配的数据类型

使用 CAST 函数可以直接转换数据类型,服务器租用就像直接处理数据一样。转换

如果订单金额是数字,但需要它作为整数,CAST 可以实现这一点。

复制SELECT CAST ( order_amount AS INTEGER ) FROM orders;1.

使用 CONVERT 函数可以间接地根据另一个值的数据类型更改值的数据类型

复制SELECT CONVERT ( order_date , CURRENT_DATE ) FROM orders;1.

使用 FORMAT 函数可以将值按照特定的模式进行格式化,这是关于数据的样式

复制SELECT FORMAT ( order_date , YYYY-MM-DD) FROM orders;1.

1.4 分组和筛选数据操作

这些操作可以帮助数据分析师根据更具体的标准对数据进行精简、汇总或整理。

按客户ID分组并计算总金额和平均金额

复制SELECT customer_id , SUM ( order_amount ) AS total_amount , AVG ( order_amount ) AS average_amount FROM orders GROUP BY customer_id;1.

筛选出消费额超过5000美元的客户

复制SELECT customer_id , SUM ( order_amount ) > 5000;1.

查看2024年1月份的订单

复制SELECT * FROM orders WHERE order_date BETWEEN 2024-01-01 AND 2024-01-31;1.

2 数据集成

数据集成是将来自不同来源的数据合并为一致的数据集的过程。

使用SQL连接和联合来合并数据就像拼接一幅拼图一样。

2.1 SQL连接

复制SELECT * FROM orders JOIN customers ON orders.customer_id = customers.customer_id;1.

连接订单表和客户表,将每个订单与其对应的客户详细信息一起显示。

2.2 Union vs. Union ALL

UNION:它能去除重复的行,只保留不重复的行。

UNION ALL:保留所有行,企商汇包括重复的行。

复制SELECT * FROM orders UNION SELECT * FROM returns;1.

显示订单和退货的合并视图,这两者的结构相似。

3 数据转换

数据转换涉及调整数据结构甚至调整实际内容。

3.1 创建新变量

使用以下SQL查询,根据订单金额将每个订单分类为“高”、“中”、“低”或“未知”:

复制SELECT order_amount, CASE WHEN order_amount > 1000 THEN High WHEN order_amount BETWEEN 500 AND 1000 THEN Medium WHEN order_amount < 500 THEN Low ELSE Unknown END AS order_level FROM orders;1.2.3.4.5.6.7.

3.2 聚合数据

使用SUM、COUNT、AVG、MIN、MAX、AND、GROUP和CONCAT等函数来聚合数据。例如,以下查询按客户ID分组,计算每个客户的订单总金额和平均金额:

复制SELECT customer_id, SUM(order_amount) AS total_amount, AVG(order_amount) AS average_amount FROM orders GROUP BY customer_id;1.2.3.4.5.

3.3 应用统计和数学函数

使用STDDEV、VARIANCE、ROUND、FLOOR和CEIL等函数。例如,以下查询将订单金额精确到小数点后两位:

复制SELECT ROUND(order_amount, 2) FROM orders;1.

3.4 排序和排名数据

使用ORDER BY、LIMIT、OFFSET或RANK等函数。例如,以下查询按订单日期降序排列,云南idc服务商仅显示前10个订单:

复制SELECT * FROM order ORDER BY order_date DESC LIMIT 10;1.

本文地址:http://www.bhae.cn/html/136d8099783.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

电脑设计支架设计教程(让你的电脑工作更高效、更舒适、更健康)

用Python 通过动态规划完成公务员考试题

互联网预言大神:凯文·凯利——预测未来的12个趋势

如何设计一个端计算架构?

微信文件大小限制解除所需时间(突破微信文件大小限制需要多久?)

很喜欢的一款开源类库,可以帮你简化每一行代码

33岁大叔自学编程,简历被拒的他是如何8个月就在Twitter上找到工作的?

【高并发】面试官问我:为啥局部变量是线程安全的?

友情链接

滇ICP备2023000592号-9