作者|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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/214421.html
標籤:其他
