产品经理学SQL
最近在工作中需要查询一些数据进行数据分析,又不好每次都麻烦开发小哥哥,于是只能动手自己查询。今天就来聊聊如何取数。(其实严格意义上来说,SQL不能算是一门编程语言,只能算是一个取数工具。)
学习SQL的好处
1、不用每次都麻烦开发
找开发小哥哥给你查询数据,你可能得等半天,而自己查询的话,一两分钟的事情。既装逼,又高效。
2、为转型数据产品经理打下基础
很多小伙伴都说自己想做数据产品经理,想做人工智能产品经理。不论是人工智能还是大数据产品经理都是需要和数据打交道的,想做人工智能首先就要学习机器学习,机器本身就需要大量的数据进行喂养才能达到学习的效果。而大部分的数据来源都是公司的数据仓库,SQL语言可以帮你了解机器学习的指标体系构建和特征提取。
3、高效处理数据
产品经理日常和数据打交道的场景很多。大部分同学可能都是通过EXCEl进行数据的可视化,比如做数据透视表这些。但是如何从多张表执行繁杂的“连接”操作和“分组”后“选择”需要的字段,这些EXCEl实现不了,但是对于SQL来说就是一句话的事情。
SQL实例讲解
1、数据库单表查询
1.1 基本的查询语法
select 列名 ---查询指定要显示的字段;如果要查看所有的列,则用*号表示
From 表A ---选择要查询的表
where 限制条件 ---各种过滤条件,例如:大于,小于等
Group by ---按指定列名进行分组统计。比如今天新增了多少名会员,今天形成了多少笔订单
Having 列名 ---对分组统计的结果进行限制。主要用来做顾虑。比如我统计每天的订单总数是多少,统计出来以后,我想知道订单总数大于100 的是多少,主要对Group by统计之后的数据进行过滤
Order by 列名 ---对查询结果进行排序(ASC升序,Desc降序),默认是升序
Limit N ---给出N条数据
1.2 实例讲解
比如订单 by_order表结构:
例子1:查询表前10行数据
例子2:找出订单金额大于200的顾客
如果会员重复怎么办呢?比如同个会员买了两次,每次金额都大于200,但我只想知道买过的金额大于200的会员有哪些,这个时候该怎么办呢?
答案是可以用distinct去重。
例子3:找出订单金额大于20小于200的顾客
例子4:按照订单金额进行排序
如果你想降序排列
1.3 汇总:group by
实际工作中的你也不会只看订单明细,而需要看看每一天的订单总额、每个顾客的每天购买金额这类数据,那这种统计类的数据就需用到Group by了。
Group by 一定是跟着汇总函数一起使用
基本的汇总函数有以下几项:
max() 统计最大
min() 统计最小
count() 计数,如果需要去计算列去重,则count(distinct)
avg() 计算平均数
sum() 汇总
例子1:统计顾客的累计购买金额
例子2:统计各个顾客的每天购买金额
备注:as sum_money 和as as day_1 都是取别名用的。
如果不写as sum_money,则显示的是左边的列表,如果加入as sum_money 则最终结果显示的下图右边的表格
遇到不懂的技术问题怎么办?
1、询问技术
抽屉里常备一些零食,没事给同事发一发,平时多帮帮别人,下次向人请教,别人也愿意帮助你。
2、百度
能百度找到答案的问题都不是问题。不要懒,也不要轻易麻烦别人。在工作中也一样,自己能解决的问题不要找领导,除非拼尽全力也解决不了。
3、多实践
掌握的技术知识还得在实践中多练习。就像高中物理老师给我们上完课以后,我们需要通过大量的习题来巩固知识一样。学习到的这些知识还是得在实践中多多练习。