做者|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/