做者|Soner Yıldırım
編譯|VK
來源|Towards Data Sciencesql
SQL是一種編程語言,大多數關係數據庫管理系統(RDBMS)都使用它來管理以表格形式(即表)存儲的數據。數據庫
SQL是數據科學家所指望的一項基本技能。你可能會說,這是一個數據工程師的工做,但數據科學家的角色每每是全套的。此外,做爲一名數據科學家,你不但願依賴數據工程師從數據庫中檢索數據。編程
在本文中,咱們將編寫複雜的查詢來檢索存儲在表中的數據。我已經將客戶流失數據集
(https://www.kaggle.com/shubh0799/churn-modelling)上傳到MySQL數據庫的一個表中。機器學習
咱們將從簡單的查詢開始,逐步增長複雜性。我將描述所需的數據,而後編寫查詢以從表中檢索數據。編程語言
讓咱們先看看錶中的列。函數
關於客戶和他們在銀行的帳戶有一些特色。「Exited」列指示客戶是否流失(即離開銀行)。學習
咱們如今能夠開始查詢了。.net
SELECT CustomerId, Surname FROM CHURN LIMIT 5;
SELECT CustomerId, MAX(Balance) FROM CHURN;
咱們沒有檢索整個「Balance」列,而是使用MAX函數僅選擇該列中的最大值。code
咱們不能在這個查詢中使用MAX,由於咱們須要排名前5的客戶。咱們能夠作的是根據餘額對客戶進行排序,而後選擇使用LIMIT獲得前5名。blog
SELECT Geography, Balance FROM CHURN ORDER BY Balance DESC LIMIT 5;
有一個條件,因此咱們使用WHERE語句。
SELECT AVG(Age) FROM CHURN WHERE HasCrCard = 0; 39.1121
若是你想知道,擁有信用卡的顧客的平均年齡是38.8424歲。
咱們將使用另外一個聚合函數來計算客戶數量。爲了根據屬性對客戶進行分組,將使用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;
咱們在這裏介紹兩個新主題。一種是使用多個條件(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語句。
它與前面的示例相似,但有一個附加條件。咱們將根據三個條件統計客戶數量:
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/