作者 |RAM DEWANI
编译 |VK
起源 |Analytics Vidhya
概述
- SQL 是任何从事剖析或数据迷信的人都必须晓得的语言
- 这里有 8 种用于数据分析的 SQL 技术,任何数据迷信专业人士都会喜爱应用它
介绍
SQL 是数据迷信业余人员军械库中的一个要害齿轮。这是经验之谈,如果你还没有学会 SQL,你就不能指望在剖析或数据迷信畛域取得成功。
为什么 SQL 如此重要?
随着咱们进入新的十年,咱们生产和生产数据的速度正在一天一天的飙升。
为了依据数据做出理智的决策,世界各地的组织都在延聘数据专业人士,如业务分析师和数据科学家,从海量的数据宝库中开掘信息。
其中一个最重要的工具就是 SQL!
结构化查询语言 (SQL) 曾经存在了几十年。它是一种编程语言,用于治理关系数据库中保留的数据。
世界各地的大多数大公司都在应用 SQL。数据分析员能够应用 SQL 拜访、读取、操作和剖析数据库中存储的数据,并生成有用的信息,以推动理智的决策过程。
在本文中,我将探讨 8 种 SQL 技术,这些技术将使你为任何高级数据分析问题做好筹备。请记住,本文假如你对 SQL 有十分根本的理解。
目录
- 理解数据集
- SQL 技术 1:计算行和项
- SQL 技术 2:聚合函数
- SQL 技术 3:极值辨认
- SQL 技术 4:数据切片
- SQL 技术 5:限度数据
- SQL 技术 6:数据排序
- SQL 技术 7:过滤模式
- SQL 技术 8:分组、汇总数据和分组过滤
理解数据集
学习数据分析的最好办法是什么?通过在一个数据集上执行它!
为此,我创立了一个批发商店的虚构数据集。客户数据表由 ConsumerDetails 示意。
咱们的数据集由以下列组成:
- Name –消费者的名称
- Locality –客户所在地
- Total_amt_spend –消费者在商店中破费的总金额
- Industry –它示意消费者所属的行业
注:咱们将应用 MySQL5.7 进行试验。你能够从这里下载
https://dev.mysql.com/downloa…
SQL 技术 1–计算行和项
Count 函数
咱们将从最简略的查问开始剖析,即计算表中的行数。咱们将应用函数 COUNT()来实现此操作。
太好了!当初咱们晓得表中的行数是 10。在一个小的测试数据集上应用这个函数仿佛没用。然而当你的行数达到数百万时,它会有很大的帮忙!
Distinct 函数
很多时候,咱们的数据表中充斥了反复的值。为了取得唯一的值,咱们应用了不同的函数。
在咱们的数据集中,咱们如何找到客户所属的行业?
你猜对了。咱们能够通过应用 DISTINCT 函数来实现这一点。
你甚至能够应用 count 和 distinct 一起计算惟一行的数量。你能够参考以下查问:
SQL 技术 2–聚合函数
聚合函数是任何数据分析的根底。它们为咱们提供了数据集的概述。咱们将探讨的一些函数是–SUM()、AVG()和 STDDEV()。
SUM 函数
咱们应用 SUM()函数计算表中数值列的和。
咱们来计算一下每位顾客的生产总额:
在下面的例子中,sum_all 是存储 sum 值的变量。消费者的生产总额是 12560 卢比。
AVG 函数
AVG()函数计算平均值。让咱们找出消费者对咱们零售店的均匀收入:
顾客在零售店的均匀消费额为 1256 卢比。
STDDEV 函数
如果你查看了数据集,而后查看了消费者的均匀收入值,你会发现有些货色脱漏了。平均值并不能提供残缺的了解,所以让咱们找到另一个重要的指标——标准差。函数为 STDDEV()。
标准差为 829.7,这意味着消费者的收入之间存在很大差距!
SQL 技术 3–极值辨认
下一种类型的剖析是确定极值,这将有助于你更好地了解数据。
Max 函数
能够应用 MAX()函数标识最大数值。让咱们看看如何利用它:
消费者在零售店的最高消费额是 3000 卢比。
Min 函数
与 max 函数相似,咱们有 MIN()函数来标识给定列中的最小数值:
零售店消费者的最低消费额是 350 卢比。
SQL 技术 4–数据切片
当初,让咱们关注数据分析中最重要的局部之一——数据切片。剖析的这一部分将形成高级查问的根底,并帮忙你依据某种条件检索数据。
- 假如零售店心愿找到来自某个中央的客户,特地是 Shakti Nagar 和 Shanti Vihar 地区。
太好了,咱们有 3 个客户!咱们应用 WHERE 子句依据消费者应该寓居在当地的条件筛选出数据—Shakti Nagar 和 Shanti Vihar。
我没有在这里应用 OR 条件。相同,我应用了 IN 运算符,它容许咱们在 WHERE 子句中指定多个值。
- 咱们须要找到那些寓居在特定地区 (Shakti Nagar 和 Shanti Vihar) 且生产金额超过 2000 卢比的客户。
在咱们的数据集中,只有 Shantanu 和 Natasha 满足这些条件。因为这两个条件都须要满足,所以和条件更适宜这里。让咱们看看另一个例子。
- 这一次,零售店心愿找回所有生产在 1000 卢比到 2000 卢比之间的消费者,以便推出特地的营销优惠。
另一种写同样语句的办法是:
只有 Rohan 在满足这个规范!
太好了!咱们曾经走到一半了。让咱们在迄今所取得的常识根底上再接再厉。
SQL 技术 5–限度数据
Limit
假如咱们要查看由数百万条记录组成的数据表。咱们不能间接应用 SELECT 语句,因为这会将整个表转储到咱们的屏幕上,这既麻烦又计算密集。咱们能够应用 Limit:
下面的 SQL 命令帮忙咱们显示表的前 5 行。
OFFSET
如果你只想抉择第四行和第五行,你会怎么做?咱们将应用 OFFSET。OFFSET 将跳过指定的行数。让咱们看看它是如何工作的:
SQL 技术 6–数据排序
对数据进行分类有助于咱们对数据进行察看。咱们能够应用关键字 ORDER by 来执行排序过程。
ORDER BY
关键字可用于按升序或降序对数据进行排序。默认状况下,ORDER BY 关键字按升序对数据排序。
让咱们看一个示例,其中咱们依据 Total_amt_spend 列按升序对数据进行排序:
要将数据集按降序排序,能够依照以下命令进行操作:
SQL 技术 7–过滤模式
在后面的局部中,咱们学习了如何依据一个或多个条件过滤数据。在这里,咱们将学习匹配指定的模式列。为此,咱们将首先理解 LIKE 运算符和通配符。
LIKE
LIKE 在 WHERE 子句中用于搜寻列中的指定模式。
通配符
通配符用于替换字符串中的一个或多个字符。它们与 LIKE 运算符一起应用。最常见的两个通配符是:
- %,示意 0 个或更多个字符
- _,它代表一个字符
在咱们的虚构批发数据集中,假如咱们想要所有以“Nagar”结尾的地区。花点工夫来了解问题陈说,并思考如何解决这个问题。
让咱们试着把这个问题合成一下。咱们须要以“Nagar”结尾的所有地位,并且在这个特定字符串之前能够有任意数量的字符。因而,咱们能够在“Nagar”之前应用“%”通配符:
太棒了,咱们有 6 个中央以这个名字结尾。留神,咱们应用 LIKE 操作符来执行模式匹配。
接下来,咱们将尝试解决另一个基于模式的问题。咱们须要第二个字符在他们各自的名字中有“a”的消费者的名字。
再一次,我倡议你花点工夫来了解这个问题,并想出一个解决它的逻辑。
让咱们把问题合成一下。这里,第二个字符须要是“a”。第一个字符能够是任何字符,所以咱们用通配符_。
在第二个字符之后,能够有任意数量的字符,因而咱们将这些字符替换为通配符“%”。最终的模式匹配如下所示:
咱们有 6 集体满足了这个条件。
SQL 技术 8–分组、汇总数据和分组筛选
咱们终于到了 SQL 中最弱小的剖析工具之一,应用 GROUP BY 语句对数据进行分组。
这个语句最有用的利用是寻找分类变量的散布。这是通过应用 GROUPBY 语句和聚合函数 (如–COUNT、SUM、AVG 等) 来实现的。
让咱们用一个问题陈说来更好地了解这一点。批发商店心愿找到与其所属行业对应的客户数量:
咱们留神到,属于不同行业的客户数量或多或少是雷同的。因而,让咱们改成依据客户所属行业分组,计算出他们的收入总额:
咱们能够察看到,生产金额最大的是属于制造业的客户。这看起来有点容易,对吧?让咱们持续更改要求,让它变得更简单。
当初,零售商心愿找到总销售额大于 2500 的行业。为了解决这个问题,咱们将再次依据行业数据进行分组,而后应用 HAVING 子句。
HAVING
HAVING 子句与 WHERE 子句相似,但仅用于过滤分组的数据。记住,它总是在 group by 语句之后。
咱们只有 3 个类别满足条件 - 航空,国防和制造业。但为了更分明,我还将增加 ORDER BY 关键字,使其更直观:
结尾
我很快乐你做到了。这些是 SQL 中所有数据分析查问的构建常识。你还能够应用这些基础知识来进行高级查问。在本文中,我应用了 MySQL 5.7 来建设示例。
我心愿这些 SQL 查问可能帮忙你剖析简单数据的日常生活。
原文链接:https://www.analyticsvidhya.c…
欢送关注磐创 AI 博客站:
http://panchuang.net/
sklearn 机器学习中文官网文档:
http://sklearn123.com/
欢送关注磐创博客资源汇总站:
http://docs.panchuang.net/