世界上70%的相关性数据可以被储存为表格数据,即类似Excel,Csv类型的数据,如何去查询和分析相关性的数据?对于少量数据,我们可以使用Excel,更多一点数据,我们可以使用Python, pandas 处理大数据 ;那么亿万条数据,我们此时就需要借助 SQL,那么掌握常用的 SQL 需要对处理大型数据非常必要。

下面我将介绍10个SQL中常用的分析技巧,供大家学习参考。

1 SELECT all columns with LIMIT

一般,我们需要了解数据的大概,那么我们一般会选择前5行进行打印,看看具体内容包括哪些!SELECT 命令会选择所有的行、列,全部进行打印时,浪费时间、电脑内存,Limit命令可以查看数据中的前几行。

SELECT * FROM Customers LIMIT 3;

Limit在MySQL这种可以正常工作,在其他的SQL中可能需要使用TOP, FETCH FIRST ROWS ONLY

2 WHERE clause

WHERE可以对特定列的值进行过滤。例如,我们过滤来自西班牙的国家,并且返回对应的城市。

SELECT City FROM CustomersWHERE Country = "Spain";

我们也可以对城市进行 Unique

SELECT DISTINCT City FROM CustomersWHERE Country = "Spain";

 3 GROUP BY and HAVING clause

当我们想要对数据中相同观测值进行分组时,我们可以使用 GROUP BY, HAVING 可以用来过滤加总的数据,常用的包括 sumcount

HAVING 用来处理加总数据,而WHERE用来处理非加总数据。

我们有世界各国的数据,想要输出人口大于500,000,000的洲:

SELECT continent, SUM(population)FROM worldGROUP BY continentHAVING SUM(population)>500000000.  --filter the aggregated values

4 Order By clause

Order By 将数据按照选择的列进行升序或者排列:

将选择的数据按照人口降序排列:

SELECT name, populationFROM worldWHERE population > 200000000ORDER BY population DESC;

5 Date Function

时间处理函数依赖于SQL的内核,不同SQL的时间处理函数有所差异,DATEPART 可以提取时间中的年月日。

提取时间中的年、月:

SELECT whn,DATEPART(YEAR, whn) AS yr,DATEPART(MONTH, whn) AS mnthFROM eclipse

6 Joins

Joins 包括笛卡尔积、内积、外积、Self Join,接下来我们将介绍 Inner、left join 和 right join 。

inner

inner 可以输出两个表或者更多表中共同的行,类似数学中的韦恩图,取两个集合的交集。

当我们取两个集合共同id, 并且仅仅输出前五行:

SELECT Orders.OrderID, Customers.CustomerNameFROM OrdersINNER JOIN CustomersON Orders.CustomerID = Customers.CustomerIDLIMIT 5; 

left join

left join 仅仅输出左边表中的所有行,输出结果中右边表不存在的值为Null

左连表, 按照 Customers.CustomerName进行升序排列:

SELECT Customers.CustomerName, Orders.OrderIDFROM CustomersLEFT JOIN OrdersON Customers.CustomerID=Orders.CustomerIDORDER BY Customers.CustomerNameLIMIT 5;

 right join

右连表与左连表相反,返回右表中的所有行,左表不存在的行将填充Null值。

SELECT Orders.OrderID, Employees.LastName, Employees.FirstNameFROM OrdersRIGHT JOIN EmployeesON Orders.EmployeeID = Employees.EmployeeIDORDER BY Orders.OrderID; 

7 Case When clause

Case When 可以让我们根据现有的数据生成一些新的列,类似于Python、Exce中的if-else语法。

例如,基于国家人口数据,生成新列population_bucket:

SELECT name, population,CASE WHEN population<1000000 THEN 'small'WHEN population<10000000 THEN 'medium'ELSE 'large'         --ELSE is executed if no condition is satisfiedEND as population_bucket   --name of the new columnFROM world

Remark: 没有else时,对应的输出将为 Null

8 Subqueries

子查询在SQL中尤为重要,一旦我们领悟,我们将读懂更为复杂的SQL语句。

例如,输出人口大于俄罗斯的国家的名字:

SELECT name FROM worldWHERE population >(SELECT population FROM worldWHERE name='Russia')

9 Window function

窗口函数包括以下三种:

加总函数(Aggregate functions):SUM, AVG, MAX, MIN等

排序函数(Ranking functions):RANK, ROW_NUMBER等

分析函数(Analytic functions):LEAD, LED等

另外,我们可以使用Over 语句去定义这些窗口函数,Over 语句和 PARTITION BY 常常联合使用。

例如,对每年每个党派的投票按照降序排列:

SELECT yr,party, votes,RANK() OVER (PARTITION BY yr ORDER BY votes DESC) as posnFROM geWHERE constituency = 'S14000021'ORDER BY party,yr

10 Union

Union 常常用来竖直方向组合多个数据集,输入的数据应该具有以下两个特征:

列的的名字和数量是形同的

每列的数据类型是相同的

SELECT DISTINCT CityFROM (SELECT City FROM CustomersUNIONSELECT City FROM Suppliers)LIMIT 5;

例如,组合消费者和供应者所在的城市:

END

10个必须掌握的SQL常用语句相关推荐

  1. 【SQL常用语句或函数】

    SQL常用语句或函数 –查询字符串的长度 select length('北京市东城区王府井大街1188799号') from dual; –查询当前时间 values current date –查询 ...

  2. SQL常用语句一览(增删改查Easy)

    SQL常用语句一览 (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]" sql="select*fro ...

  3. 数据库 SQL常用语句

    数据库 SQL常用语句 文章目录 数据库 SQL常用语句 一.前言 二.相关知识点实用性介绍 1.常用查询格式 2.WHERE子句常用的查询条件 3.多表连接查询 4.嵌套查询 5.字符匹配查询 6. ...

  4. SQL常用语句(基础篇)

    SQL常用语句(基础篇) 说明:创建数据库 CREATE DATABASE database-name 说明:删除数据库 drop database dbname 说明:备份sql server -创 ...

  5. Teradata sql 常用语句总结

    工作使用TD数据库,转载常用语句方便查看 从参考文章中截取工作中经常的语句,不定时更新 参考文章1:https://blog.csdn.net/u010020099/article/details/8 ...

  6. SQL常用语句 笔记

    https://github.com/QInzhengk/Math-Model-and-Machine-Learning SQL笔记 1.常用MySQL命令 2.语法规范 3.语句分类 MySQL索引 ...

  7. sql常用语句使用方法

    一.root用户密码丢失或重新设置 方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = pass ...

  8. SQL Server中的几个方法和Transact SQL 常用语句以及函数[个人推荐]

    --数据操作   SELECT --从数据库表中检索数据行和列  INSERT --向数据库表添加新数据行  DELETE --从数据库表中删除数据行  UPDATE --更新数据库表中的数据  -- ...

  9. Transact SQL 常用语句以及函数

    Transact SQL  语 句 功 能  ======================================================================== --数据 ...

最新文章

  1. 运动想象系统中的特征提取算法和分类算法
  2. 如何让控件span的id调用ajax_微服务架构之「 调用链监控 」
  3. Sperner定理及其证明
  4. 手游特效太多怎么办?这里有一份性能优化方案可参考
  5. 为什么Python是最吸金编程语言?
  6. Nginx 笔记与总结(13)Nginx 的 gzip 压缩
  7. 常见激活函数及其求导相关知识
  8. 快速数据库框架_快速学习新的数据科学概念的框架
  9. 同步,异步,多线程,你怎么看?
  10. element label动态赋值_基于Element封装可拖动放大缩小的弹窗
  11. 角色和权限Hibernate实体映射配置
  12. (转)Spring Boot(十六):使用 Jenkins 部署 Spring Boot
  13. QT每日一练day25:触发绘画事件
  14. 虚拟机系统和windows主机系统的文件互传方法 ——WinSCP使用
  15. Mac上的UML建模工具
  16. 2019川大计算机在福建录取分数线,电子科技大学录取分数线2019(在各省市录取数据)...
  17. hand crafted feature:histogram(直方图)
  18. win7网络里的计算机,win7看不到局域网计算机怎么办
  19. openlayers 绘制动态迁徙线、曲线
  20. 安装linux系统的ppt课件,Linux系统安装与入门PPT演示课件

热门文章

  1. iOS事件传递链与响应链
  2. docker删除镜像及容器
  3. 程序员接私活的7大利器以及建议
  4. VMware虚拟机安装windows8 时报错“Oxc000035a”解决办法
  5. 差序格局与关系取向社会
  6. 科学计数法e/E?计算机?表示?
  7. #include<set>头文件的用法
  8. C++ 简单的CPU使用率监控程序
  9. 打开.pdm文件的工具
  10. 【Cherno的OpenGL视频】Welcome to OpenGL