数据分析师必备的数据提取技能

数据分析师必备技能SQL

在数据分析的整个流程中,数据获取是不可或缺的一环,那么作为数据分析师,我们不仅仅需要了解如何获取二手数据,还必须掌握如何从数据库中获取我们所需的一手数据。而事实上,在我面试过的数据分析师中,有部分分析师并没有掌握这项基本且重要的技能,以致于最终被淘汰,而这项基本且重要的技能就是会编写SQL。

SQL的基本概念和作用

SQL的基本概念:SQL是一种结构化查询语言(Structured Query Language),用于存取数据以及查询、更新和管理关系型数据库。对于专业的数据库管理员而言,需要掌握比较复杂的用法,但是对于数据分析师,掌握常用的SELECT查询命令即可。

SQL的作用:对于数据分析师而言,使用SQL的目的就是从数据库中获取所需要的源数据,便于后续的分析使用。

常用的SQL语法

常用语法有:

SELECT / FROM / WHERE / DISTINCT / AS / CASE WHEN / PARTITION BY/ROW_NUMBER / OVER / GROUP BY / ORDER BY / LEFT JOIN / RIGHT JOIN / INNER JOIN / ON / HAVING / IN / EXISTS / UNION / MAX / MIN / AVG / COUNT / SUM / SUBSTRING / CAST / SUB QUERY

举例:

SELECT

a.name,

b.sex,

b.age

FROM

table1 AS a

LEFT JOIN table2 AS b ON a.name = b.name

WHERE

b.sex = 0

AND b.age < 18

ORDER BY

a.name

SQL性能优化技巧

当我们用SQL获取想要的数据时,可能会遇到查询的速度比较慢的问题,这时我们需要考虑自己写的SQL脚本是否有优化的空间,常用的SQL性能优化技巧有:

尽量不要使用SELECT * , 想查哪个字段就写出哪个字段;

查询记录条数时,用COUNT(1)代替COUNT(字段名称);

WHERE后加限制条件时,将可以过滤较多数据记录的条件写在后面;

尽量不要使用全连接FULL JOIN;

LEFT JOIN时将大表作为主表;

避免在WHERE字句中使用IN、NOT IN 、OR、HAVING,可以使用EXISTS、NOT EXISTS代替。

本文仅介绍数据分析师常用的SQL基本语法,若想了解更多SQL的复杂用法,可网上搜索资料研究,也欢迎大家前来一起交流学习。

本文来自企鹅号 - 乐享数据媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Grace development

老项目重构手记之用户系统

重构首先要注意几个点 – 重构后功能的可扩展性 – 业务互相依赖的复杂度 – 脱离本身的业务进行重构 – 重构后的代码可读性与可维护性 – 性能的提升...

1152
来自专栏小怪聊职场

MySQL(八)|MySQL中In与Exists的区别(2)

1723
来自专栏java学习

Oracle基础试题与答案!

表结构: create table tbEmp --职员表 ( eID number(7) primarykey, ...

35612
来自专栏杨建荣的学习笔记

一条SQL语句的执行计划变化探究(r10笔记第3天)

最近有个同事碰到一个问题,想让我给点思路。我大体了解了一下,是一个系统目前在做压力测试,但是经业务反馈发现某个环节的处理时间有些长,排查了一圈,最后这件事情就落...

3276
来自专栏数据和云

SQL优化:紧急情况下提高SQL性能竟是这样实现的!

作者 | 黄堋 ,多年一线 Oracle DBA 经验,长期服务电信、电网、医院、政府等行业客户。擅长数据库优化、数据库迁移升级、数据库故障处理。

926
来自专栏沃趣科技

SQL优化案例-自定义函数索引(五)

SQL文本如下,表本身很小,走全表扫描也很快,但因业务重要性,要求尽可能缩短查询时间(为保证客户隐私,已经将注释和文字部分去掉):

1003
来自专栏程序猿DD

一个不可思议的MySQL慢查分析与解决

前言 开发需要定期的删除表里一定时间以前的数据,SQL如下 mysql > delete from testtable WHERE biz_date <= '2...

3465
来自专栏杨建荣的学习笔记

相差数十倍的SQL性能分析(r11笔记第98天)

今天处理开发同学提交的一个数据查询需求,看起来是一个很常规的SQL,但是有一点不同的是,他们提供了两份文件,一份是一个id列表,大概有3000多个id值,...

3458
来自专栏Jed的技术阶梯

Hive案例02-数值累加

其中字段意义: userid(string) month(string) count(int) 分别代表: 用户id 月份 该月访问次数 需求: ...

3633
来自专栏数据之美

关于mysql 索引自动优化机制: 索引选择性(Cardinality:索引基数)

1、两个同样结构的语句一个没有用到索引的问题: 查1到20号的就不用索引,查1到5号的就用索引,为什么呢?不稳定? mysql> expla...

3338

扫码关注云+社区

领取腾讯云代金券