資料科學家的SQL查詢
作者|Soner Yıldırım
編譯|VK
來源|Towards Data Science
SQL是一種程式語言,大多數關係資料庫管理系統(RDBMS)都使用它來管理以表格形式(即表)儲存的資料。
SQL是資料科學家所期望的一項基本技能。你可能會說,這是一個數據工程師的工作,但資料科學家的角色往往是全套的。此外,作為一名資料科學家,你不希望依賴資料工程師從資料庫中檢索資料。
在本文中,我們將編寫複雜的查詢來檢索儲存在表中的資料。我已經將客戶流失資料集
(https://www.kaggle.com/shubh0799/churn-modelling)上傳到MySQL資料庫的一個表中。
我們將從簡單的查詢開始,逐步增加複雜性。我將描述所需的資料,然後編寫查詢以從表中檢索資料。
讓我們先看看錶中的列。
關於客戶和他們在銀行的賬戶有一些特點。“Exited”列指示客戶是否流失(即離開銀行)。
我們現在可以開始查詢了。
“CustomerId”和“姓氏”列的前5行
SELECT CustomerId, Surname
FROM CHURN
LIMIT 5;
餘額最高的客戶的ID
SELECT CustomerId, MAX(Balance)
FROM CHURN;
我們沒有檢索整個“Balance”列,而是使用MAX函式僅選擇該列中的最大值。
餘額排名前5位的客戶
我們不能在這個查詢中使用MAX,因為我們需要排名前5的客戶。我們可以做的是根據餘額對客戶進行排序,然後選擇使用LIMIT得到前5名。
SELECT Geography, Balance
FROM CHURN
ORDER BY Balance DESC
LIMIT 5;
沒有信用卡的顧客的平均年齡
有一個條件,所以我們使用WHERE語句。
SELECT AVG(Age)
FROM CHURN
WHERE HasCrCard = 0;
39.1121
如果你想知道,擁有信用卡的顧客的平均年齡是38.8424歲。
每個國家擁有2種以上產品的客戶數量
我們將使用另一個聚合函式來計算客戶數量。為了根據屬性對客戶進行分組,將使用GROUPBY語句。
SELECT Geography, COUNT(CustomerId) FROM CHURN WHERE NumOfProducts > 2 GROUP BY Geography;
基於產品數量的平均工資
我們可以將AVG函式應用於薪資,並按產品數量分組。
SELECT NumOfProducts, AVG(EstimatedSalary)
FROM CHURN
GROUP BY NumOfProducts;
WHERE語句允許我們選擇符合一個或多個條件的條目。但是,它不能與聚合函式一起使用。
對於上面的查詢,我們只對平均值大於100000的產品類別感興趣。因此,我們需要對平均值應用一個條件,這個條件可以使用HAVING語句來完成。
SELECT NumOfProducts, AVG(EstimatedSalary)
FROM CHURN
GROUP BY NumOfProducts
HAVING AVG(EstimatedSalary) > 100000;
50歲以上並且餘額高於平均水平的客戶
我們在這裡介紹兩個新主題。一種是使用多個條件(age和balance),另一種是巢狀的SELECT語句。
我們可以使用AND和OR等邏輯運算子在WHERE語句中組合多個條件。一個條件顯式給定(age>50),但另一個條件需要使用另一個SELECT語句在表上計算。這就是我們需要巢狀SELECT語句的地方。
SELECT CustomerId, Age, Balance
FROM CHURN
WHERE Age > 50 AND Balance > (
SELECT AVG(Balance)
FROM CHURN );
餘額上的條件是另一個SELECT語句。
為已離開的女性並且存留時間超過了平均水平的客戶數量
它與前面的示例類似,但有一個附加條件。我們將根據三個條件統計客戶數量:
- 性別
- Exited= 1
- 客戶在銀行的存留時間
SELECT COUNT(CustomerId) AS 'Number of Customers'
FROM CHURN
WHERE Gender = 'Female' AND Exited=1 AND Tenure > (
SELECT AVG(Tenure)
FROM CHURN);
我們還可以使用“AS”關鍵字調整結果集中列的名稱。
)
結論
我們已經討論了一些基本和複雜的查詢。我們通過查詢實現的是一些計算和過濾。因此,我們只能檢索我們需要的資料。
由於實際的資料庫包含更多的資料和許多關係表,因此能夠使用SQL查詢所需的資料是非常重要的。
原文連結:https://towardsdatascience.com/sql-queries-for-data-scientists-5260737fc442
歡迎關注磐創AI部落格站:
http://panchuang.net/
sklearn機器學習中文官方文件:
http://sklearn123.com/
歡迎關注磐創部落格資源彙總站:
http://docs.panchuang.net/