2017-08-02 08:30 来源:人人都是产品经理 数据分析 本文是《如何七周成为数据分析师》的第十篇教程,如果想要了解写作初衷,可以先行阅读七周指南。温馨提示:如果您已经熟悉数据库,大可不必再看这篇文章,或只挑选部分。 在《写给新人的数据库指南》,我们已经成功的安装数据库,并且导入数据,今天进入SQL实战练习。SQL是数据库的查询语言,语法结构简单,相信本文会让你从入门到熟练。 掌握SQL后,不论你是产品经理、运营人员或者数据分析师,j2直播,都会让你分析的能力边界无限拓展。别犹豫了,赶快上车吧! 以下的语句都在SequelPro的Query页面运行,其他操作页面不会有太大差异。标点符号必须为英文,这是新人很容易犯的错误。 SQL最小化的查询结构如下: select column from table table是我们的表名,column是我们想要查询的字段/列,column可以用 * 代替,指代全部字段,意为从table表查询所有数据。 where 是基础查询语法,用于条件判断。 select * from DataAnalyst where city = ‘上海’ 上图是最简化的查询语句,将所有城市为上海的职位数据过滤出来。我们也可以用 and 进行多条件判断。 select * from DataAnalyst where city = ‘上海’ and positionName = ‘数据分析师’ or 语句则是或的关系 select * from DataAnalyst where city = ‘上海’ or positionName = ‘数据分析师’ 查找城市为上海,或者职位名称是数据分析师的数据,它们是并集。 当我们涉及到非常复杂的与或逻辑判断,应该怎么办?比如即满足条件AB,又要满足条件C,或者是满足条件DE。此时需要用括号明确逻辑判断的优先级。 select * from DataAnalyst where (city = ‘上海’ and positionName = ‘数据分析师’) or (city = ‘北京’ andpositionName = ‘数据产品经理’) 这条语句的含义是查找出上海的数据分析师或者是北京的产品经理。当有括号时,会优先进行括号内的判断,当有多个括号时,对最内层括号先进行判断,然后依次往外。 接下来的问题来了,当我们要查询多个条件,直播,比如北京上海广州深圳南京这些城市,难道一个个用and关联起来?这太麻烦了,我们可以使用 in 。 select * from DataAnalyst where city in (‘北京’,’上海’,’广州’,’深圳’,’南京’) 当我们遇到字段数据类型是数值时,也可以使用符号> 、>=、< 、<=、!= 进行逻辑判断,!= 指的是不等于,等价于 <> 。 select * from DataAnalyst where companyId >= 10000 上例是筛选出公司ID >= 10000的职位,为数值时,不需要像字符串一样加引号。 当我们需要取区间数值时,使用 between and select * from DataAnalyst where companyId between 10000 and 20000 between and 包括数值两端的边界,等同于 companyId >=10000 and companyId <= 20000。 如果要模糊查找,能用like。 select * from DataAnalyst where positionName like ‘%数据分析%’ 语句的含义是在positionName列查找包含「数据分析」字段的数据,%代表的是通配符,含义是无所谓「数据分析」前面后面是什么内容。如果是 ‘数据分析%’ ,则代表字段必须以数据分析开头,无所谓后面是什么。 除了上面所讲,还有一个常用的语法是not,代表逻辑的逆转,常见not in、not like、not null等。 接下来我们学习group by,它是数据分析中常见的语法,目的是将数据按组/维度划分。类似于Excel中的数据透视表,我们以city为例。 select * from DataAnalyst group by city 它将城市划分成几组,通过group by 可以快速的浏览数据有哪些城市。我们看一下它的高阶用法。 select city,count(1) from DataAnalyst group by city 上述语句,使用count函数,统计计数了每个城市拥有的职位数量。括号里面的1代表以第一列为计数标准。这里出现新的问题,当我们遇到重复数据怎么办?在DataAnalyst 这张表中,北京职位包含重复的职位ID,我们需要去重。 select city,count(distinct positionId) from DataAnalyst group by city (责任编辑:本港台直播) |