产品经理数据分析需要会写代码吗?SQL还是Python?
产品经理应该不应该学习代码?
首先产品经理应不应该学习代码?不同的产品经理持有不同的观点。编程能力在产品经理的工作中是一个非必要的基本功,但会使用编程能力会给我们自己的工作带来加分项。因此在有空闲时间时可以学习代码作为自己的一个加分项,或者学习技术架构里面的逻辑。其次,在学习的时候应该学习什么?产品经理比较常用的编程语言是SQL和python,我们应该先学习什么?学习SQL可以自己跑产品相关的运营数据报表,学习Python可以对产品的运营数据进行相关的分析,按照在工作中的需求进行学习。
为什么要学习SQL?
在产品经理的工作中,产品经理需要根据数据分析出来的结果来做相关的决策,在数据分析时,需要向数据分析师提出提取数据的需求,由数据分析师提取相关数据后交付产品经理。学习了SQL产品经理可以直接从开发好的数据库中提取详细数据进行分析。因此SQL作为了数据分析比较常用的工具进行使用。
SQL的基本功能
数据定义
创建(create)、删除(Drop)、修改(alter),主要用于数据库、表、视图、索引等对象。数据操纵
查询(select)、插入(insert)、更新(update)、删除(delete),主要作用于表。数据控制
赋予权限(Grant)、取消权限(revoke),主要用于表和列。数据分析的常规分析流程
1. 熟悉工具。如SQL或可视化数据报表平台
2. 明确目的:明确数据分析的目的,希望通过分析得出什么结果。如希望通过数据分析找出流失用户都有哪些特征,广告CTR下降的原因等等。
3. 获取数据:获取数据明确以下几个点
1. 需要获取什么指标;
2. 需要获取什么时间段数据;
3. 这些数据都放在哪个数据库、哪张表中;
4. 如何获取数据,通过自己写SQL还是提需求到数据开发;
4. 熟悉数据:看一下数据有多少,什么类型,每一个指标有哪些值,这些数据能否满足我们的需求等等。如果不能,还需要获取什么数据。
5. 处理数据:处理数据中的异常数据、重复数据、缺失数据等。
6. 分析数据:围绕关键指标进行分析,分析过程中采用下钻法,如分析某一天CTR下降、哪个时间段、哪些app等等。
7. 得出结论:对数据分析得出相应的结论。
8. 验证结论:与实际业务相结合,验证得出的结论是否正确。
9. 展现结论:结论给相关人去看,需要考虑以什么样的形式展示,即数据可视化。
SQL常用基础
基础查询:查询数据库中的所有数据
select * from <表名>;--作用查询表中的所有数据--select是关键字,表示将要执行一个查询--<*>表示所有列,from表示从哪个表进行查询。--查询结果是一个二维表包含列名和每一行数据
条件查询:select语句通过where条件来设定查询条件,查询结果是满足查询条件的记录;
select * from <表名>where model = "XXX";--作用查询model为XXX的数据--where是关键字,后面的是条件,--model是列名,存储model相关的信息--因此指定model= "XXX"可以筛选出指定记录的数据
多个条件查询:同时满足多个条件可以用:<条件1> AND <条件2>,表达满足条件1并且满足条件2。
select * from <表名> where model = "XXX" and dayno >= 20200701 and dayno <= 202001201;--作用查询满足dayno从20200701到20201201并且model为XXX的数据--where关键词后的<条件1> AND <条件2>表达式,--表示满足条件1和条件2的可以筛选出来
多个条件只满足一个可以用:<条件1> or<条件2>,表示满足条件1或者满足条件2。
select * from <表名> where (model = 'XXX' or osversion = X) and dayno >= 20200701 and dayno <= 20201201;--作用查询满足dayno从20200701到20201201并且model为XXX的数据或者osversion为X的数据--where关键词后的<条件1> or<条件2>表达式,表示满足条件1或者满足条件2--组合多个条件查询可以通过小括号()表示如何进行运算--如果不加括号,条件运算按照not、and、or的优先级进行,not优先级最高,--其次是and,最后是or,加上括号可以改变优先级
不包含某条件可以使用:NOT <条件>,表示“不符合该条件”的记录。
select * from <表名> where model = 'XXX' and not osversion = X and dayno >= 20200701 and dayno <= 20201201;--作用查询满足dayno从20200701到20201201并且model为XXX的数据osversion为X的数据--where关键词后的NOT <条件>,表示“不符合该条件”的记录
常用条件表达式:
后续:产品经理SQL实践学习