成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

十條命令,精通SQL數據清洗、集成和轉換

數據庫 其他數據庫
實際上,數據準備階段通常占據了整個數據分析工作的80%多的的工作量。這個階段的任務是整理和清理數據,以確保其質量和一致性,并進行必要的數據集成和轉換,以滿足分析需求。

數據準備是數據分析師工作中非常重要的一部分。在進行數據分析之前,必須對數據進行準備,以確保數據呈現出自己和其他人都能理解的格式,從而為后續工作鋪平道路。

實際上,數據準備階段通常占據了整個數據分析工作的80%多的的工作量。這個階段的任務是整理和清理數據,以確保其質量和一致性,并進行必要的數據集成和轉換,以滿足分析需求。

1 數據清洗

數據清洗是將數據格式化并符合要求,通過刪除或修復不正確或不一致的部分來實現。

以下是其中的常見任務:

1.1 消除重復項

獲取唯一的記錄

SELECT DISTINCT order_id FROM orders;

獲取該屬性的第一條唯一記錄

SELECT DISTINCT ON ( customer_id ) * FROM orders;

1.2 處理缺失值

選擇列表中第一個非空值

SELECT COALESCE ( order_date , CURRENT_DATE ) FROM orders;

訂單金額為 0 時應視為無效

SELECT NULLIF ( order_amount , 0 ) FROM orders;

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.3  標準化不匹配的數據類型

使用 CAST 函數可以直接轉換數據類型,就像直接處理數據一樣。

如果訂單金額是數字,但需要它作為整數,CAST 可以實現這一點。

SELECT CAST ( order_amount AS INTEGER ) FROM orders;

使用 CONVERT 函數可以間接地根據另一個值的數據類型更改值的數據類型

SELECT CONVERT ( order_date , CURRENT_DATE ) FROM orders;

使用 FORMAT 函數可以將值按照特定的模式進行格式化,這是關于數據的樣式

SELECT FORMAT ( order_date , 'YYYY-MM-DD') FROM orders;

1.4 分組和篩選數據操作

這些操作可以幫助數據分析師根據更具體的標準對數據進行精簡、匯總或整理。

按客戶ID分組并計算總金額和平均金額

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

篩選出消費額超過5000美元的客戶

SELECT customer_id , SUM ( order_amount ) > 5000;

查看2024年1月份的訂單

SELECT * FROM orders WHERE order_date BETWEEN '2024-01-01' AND '2024-01-31';

2 數據集成

數據集成是將來自不同來源的數據合并為一致的數據集的過程。

使用SQL連接和聯合來合并數據就像拼接一幅拼圖一樣。

2.1 SQL連接

SELECT * FROM orders JOIN customers ON orders.customer_id = customers.customer_id;

連接訂單表和客戶表,將每個訂單與其對應的客戶詳細信息一起顯示。

2.2 Union vs. Union ALL

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

UNION ALL:保留所有行,包括重復的行。

SELECT * FROM orders UNION SELECT * FROM returns;

顯示訂單和退貨的合并視圖,這兩者的結構相似。

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;

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;

3.3 應用統計和數學函數

使用STDDEV、VARIANCE、ROUND、FLOOR和CEIL等函數。例如,以下查詢將訂單金額精確到小數點后兩位:

SELECT ROUND(order_amount, 2) FROM orders;

3.4 排序和排名數據

使用ORDER BY、LIMIT、OFFSET或RANK等函數。例如,以下查詢按訂單日期降序排列,僅顯示前10個訂單:

SELECT * FROM order ORDER BY order_date DESC LIMIT 10;
責任編輯:武曉燕 來源: Java學研大本營
相關推薦

2009-04-08 10:51:59

SQL優化經驗

2011-08-02 21:16:56

查詢SQL性能優化

2010-06-22 10:00:31

SQL查詢

2012-05-15 01:38:18

編程編程技巧編程觀點

2010-12-02 14:29:07

nmap

2012-08-02 09:14:13

編程戒律

2025-05-21 00:10:00

2023-11-10 18:03:04

業務場景SQL

2022-02-14 00:16:17

數據安全云安全

2010-01-13 18:00:01

華為交換機命令

2011-07-27 09:17:20

.NET設計架構

2012-03-06 16:01:04

項目管理

2012-09-28 09:12:39

移動Web

2025-03-19 08:21:15

2025-05-15 20:55:38

2009-05-19 10:14:44

Innodb字段MySQL

2009-01-15 09:57:00

2010-08-02 10:23:44

服務器虛擬化

2021-03-18 09:00:00

微服務架構工具

2011-04-14 11:43:47

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕99 | 日韩a级片 | 欧美一区二区三区在线免费观看 | 一级毛片色一级 | 国产一区二区三区四区 | 亚洲精品乱码 | 一级a性色生活片久久毛片波多野 | 99在线播放 | 精品国产乱码久久久久久蜜柚 | 国产精品久久久 | 久久久蜜桃 | 欧美va大片 | 成年无码av片在线 | 欧洲一级毛片 | 欧美精品91爱爱 | 亚洲逼院 | 日韩精品在线网站 | 亚洲欧洲精品一区 | 天天拍天天插 | 四虎影视免费观看 | 可以免费看的毛片 | 亚洲美女一区二区三区 | 国产一区视频在线 | 成人在线欧美 | 福利视频一区二区 | av一级毛片 | 久久精品久久久久久 | 天堂中文在线播放 | 成人精品一区 | 国产在线对白 | 中国人pornoxxx麻豆 | 成人免费共享视频 | 精品中文字幕一区二区三区 | 五月天激情综合网 | 午夜精品一区二区三区在线视 | 亚洲精品一区二区三区丝袜 | 亚洲午夜一区二区 | 日本三级做a全过程在线观看 | 国产精品综合视频 | 日日想夜夜操 | 亚洲视频一区 |