【数据分析实战经验】入职5-12周 技术小结

一、EXCEL宏:简单来说,Excel 宏指的是,使用 Excel 内置的编程语言 VBA (Visual Basic for Applications)写的,能在 Excel 环境里运行的一系列操作指令。我们在 Excel里手动进行的几乎所有操作,宏(VBA)也都可以操作。主要场景:用来解决大量多表重复操作主要步骤:开启宏-设置宏的安全性-判断使不使用相对引用-选择起始位置或区域-录制宏-设置快捷键-选择待使用的位置或区域-使用宏怎么判断使不使用相对引用:参考这个文章。https://www.
摘要由CSDN通过智能技术生成

入职第十二周了,趁今天想把入职到现在学到的技术上的一些点做个整理和总结,不能再拖延了小伙!!!!!!

一、EXCEL

1.宏

宏:简单来说,Excel 宏指的是,使用 Excel 内置的编程语言 VBA (Visual Basic for Applications)写的,能在 Excel 环境里运行的一系列操作指令。我们在 Excel里手动进行的几乎所有操作,宏(VBA)也都可以操作。

主要场景:用来解决大量多表重复操作
主要步骤:开启宏-设置宏的安全性-判断使不使用相对引用-选择起始位置或区域-录制宏-设置快捷键-选择待使用的位置或区域-使用宏
怎么判断使不使用相对引用:参考这个文章。https://www.jianshu.com/p/d993f9ff13f3
宏与透视表的配合使用:实战过程中发现,录制宏,不能把产出透视表这一步起录制下来,系统一直会跳转出错。
百度之后原因在于:如果你每运行一次都重新开启这个档案的话是可以的(产生的透视表不能保存,保存后也后出错),但是不能连续运行,因为它产生的透视表是一样名字的,所以会产生错误。
解决办法:一般做数据透视表都是先做好透视表,然后用宏去更新表格数据,以达到更新的目的透视表
2.趋势线

趋势线用来反映数据的属性走势。

主要有6类:

移动平均:不具备预测功能,只是将周期平移,例如将周期设置为2,则前两端的数据点平均值是趋势线中的第一个点,第2和第3个数据点的平均值是趋势线第2个点。
线性:主要用于线条比较平稳,数据点构成类似一条直线,通常表示事物以恒定比例增减。比如:人流量和入店率关系分析
对数:主要用于一开始增减的趋势比较快,又迅速趋于平缓。比如:季节性产品销量和时段关系
多项式:主要用于波动较大的图形,阶数通常由波动的次数或曲线中峰和谷的个数确定。二阶一般仅一个峰或谷,三阶1-2个。比如:股票价格分析
乘幂:主要用于以特定的速度持续增长或减少,幅度并不特别大的分析。比如:火车加速度和时间对比
指数:主要用于持续增长或减少,且增减速度越来越大。比如:成长型公司年度销售额分析

还有,在添加趋势线时,勾选添加趋势线-选项,下的显示R平方值来衡量趋势线的拟和程度,R平方值为0-1,越接近1就表示趋势线的误差越小!当然就可以选择该方案的趋势线!


二、postgresql

1.建临时表

  create temp table 自定义表名 as 
 	(select *,xxx from table A
 	......)

主要场景:当源表没法直接满足业务需求,且后续很多步骤会重复使用到自己根据源表处理后的二次表,这时候需要用到这个语句。
注意点:当数据库重新连接及sql窗口重新打开时,要重新加载一次。

2.删去临时表

drop table xxx

主要场景:1、自定义的表名需要复用。2、每次退出前

3、求平均付费间隔

已知玩家充值付费表A,主要字段,role_id,vip,order_date,

解法:
第一步:按role_id 原表自连接,left join ,并且连接条件设置a.付费日期<b.付费日期,
第二步:按所需字段进行聚合,vip、
role_id,a.order_date,min(b.order_date)-a.order_date,目的是求出每一个玩家付费日期与最近一起后续有付费的日期间的差距。
第三步:再聚合一次,求差距的avg。

select m.vip_lvv as vip等级,avg(gapp) as 平均购买间隔 from 
	(select c.vip_lv as vip_lvv,c.roleid as roleidd,avg(gap) as gapp from
		(select a.vip as vip_lv,a.role_id as roleid ,a.order_date,(min(b.order_date)-a.order_date)as gap from gos_pay_analyse_dws_6494 as a
			left join gos_pay_analyse_dws_6494 as b
			on a.role_id =b.role_id  and a.order_date <b.order_date 
		where (a.order_date between '2018-7-01' and '2018-9-30' )and(b.order_date between '2018-7-01' and '2018-9-30' )
		group by a.vip,a.role_id ,a.order_date)c
	group by c.vip_lv,c.roleid)m
group by m.vip_lvv;

4、贴标签 case when else end
需求:
根据玩家不同注册时长,进行玩家划分。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值