工作中常用数据统计分析手段

常用sql语句

mysql查询语句

作用1:查询普通的数据
order by 的作用是根据某个字段进行升序排序,如果在后面加上desc则为降序排序

select * from user order by id;

mysql分组查询

作用2:根据某个字段进行分组查询
通常group by 一般搭配着count,sum()等统计函数一起使用

select count(*) from eb_user group by gender;

mysql更新插入

作用3:更新插入数据
更新user表中id为1的用户设置name字段的值为libai,可同时设置多个字段的值

update user set name='libai' where id = 1;
update user set name='libai',gender=1 where id = 1;

mysql时间戳的操作

作用4:统计时间戳数据
根据用户的注册时间统计目标每月的新增用户量
from_unixtime可以将时间戳转化为时间

select FROM_UNIXTIME(add_time,'%Y-%m'),count(*) from eb_user GROUP BY From_unixtime(add_time,'%Y-%m');

mysql时间的操作

作用5:统计时间字符串数据
date_format能操作时间字符串,如:2021-10-28 14:07:16
常用时间格式化字符串:‘%Y-%m-%d %H:%i:%s’

select DATE_FORMAT(time,"%Y_%m"),sum(money) from cash where status = 1 GROUP BY DATE_FORMAT(time,"%Y年%m月") 

导出某张表的注释信息

作用6:导出某张表的注释信息
在工作中常常需要分析用户表并生成excel文件,表头需要手动复制粘贴很麻烦,使用该语句可以直接导出中文注释等相关信息

select column_name,column_type,data_type,character_maximum_length,is_nullable,column_default,column_comment from information_schema.columns where table_schema=数据库名 and table_name = 表名;

导出所有表名与该表名注释信息

作用7:导出所有表名与该表名注释信息

select table_name,table_comment from information_schema.tables;

python脚本常用算法思路

在统计传销数据常用到:统计该组织下级最大层级,下级人数。计算层级和下级人数的时候是可以一起计算的。
在此总结了一些算法思路。
1.计算层级,下级人数
工作中常见目标的数据库提供的等级信息有:个人用户id,上级id
如果使用遍历循环这样的方式计算,时间复杂度很大,而一个传销组织用户量在我现在的工作岗位经常是8W~20W用户量的,这样脚本遍历计算需要一整天时间,如果出错还需要重新运行。
所以在这里进行了优化并总结:

(1).将目标数据的用户数据进行全部查询返回到程序中并保存在变量里面,如需查询某个用户的上级或者查询以某个用户为上级的所有用户,就可以直接在程序变量里面直接找。那么我们如果保存在列表里面,寻找某个用户的上级的时候就需要遍历列表,这个计算量其实还不如通过sql语句查询。

(2).保存数据的变量用字典,因为在字典中找数据传入相对应的键值即可立刻找到,这就是字典的优势。这里保存用的字典结构为:self.top_datas = {“上级id”:[下级id1,下级id2]},这样就可以输入某一个id即可立刻查询出该id的所有下级id,至于怎么保存成self.top_datas格式可以参考以下代码

self.top_datas = {}
for user in users:	# 遍历所有用户信息
	uid = user[0]	# 用户id
	father_id = user[1]	# 该用户的上级id
	try:
		self.top_datas[father_id].append(uid)
	except Exception as e:
		self.top_datas[father_id] = [uid]
# 此时即可保存成这样的数据啦{"上级id":[下级id1,下级id2]}

(3).既然确定了是用字典保存,剩下就是算法,以下用一个图简略表示以下
在这里插入图片描述
输入一个用户id为11,寻找该用户的最大下级层级,下级人数。
第一步:找出上级为11的所有用户:22,33
第二步:找出上级包含为22,33的所有用户:44
第三步:找出上级为44的所有用户:55
第四步:找出上级为55的所有用户:无
由此可以看出,上一步的结果可以作为下一步的输入,当返回结果为无的时候,即到达了最低层。可以说递归即可完成,函数退出的接口即为返回值为无的时刻。

def get_low(self,uid,ceng,num):	# 找出目标下级
		user_ids = []
		flag = 1
		for i in uid:	# 遍历目标
			try:
				datas = self.top_datas[str(i)]
			except Exception as e:	# 没有以这个用户为上级的
				continue
			if datas == []:	# 没有以这个用户为上级的
				continue
			if flag:
				ceng += 1	# 统计层级
				flag = 0
			num += len(datas)	# 统计团队人数
		return user_ids,ceng,num

	def get_ceng(self):	# 统计层数
		uid = 11
		print("正在计算%s用户的信息" % uid)
		targets = [uid]
		ceng = 1	# 层数
		num = 0	# 下级人数
		while targets:
			targets,ceng,num = self.get_low(targets,ceng,num)
		
		print("%s用户最大层级为:%s,下级人数为:%s" % (uid,ceng,num))

2.统计每个用户总充值,总提现,根据充值类型进行分类计算
这个需求很常见,通常目标数据库都会有几十万数据,公司要求的也是快,快速统计完成的原理跟计算层级是一样的,用数据结构字典
(1)用一个变量保存所有充值或者提现数据,如:datas = {“uid”:[[],[],[]]},一个用户uid里面可对应多个列表,因为一个用户不止一个充值或者提现数据。
(2)将用户数据保存进datas中

for user in users:
	uid = user[0]	# 用户id
	money = user[1]	# 充值或提现金额
	type = user[2]	# 充值类型或提现类型
	# 传销案子中充值类型和提现类型常见都有虚拟货币这样子,所以需要统计每个币种的总金额
	try:
		datas[uid].append([type,money])
	except Exception as e:
		datas[uid] = [[type,money]]

(3)遍历用户,即可找出每个用户相对应的充值订单信息,遍历过程取个变量保存,每次遍历时相加即可
(4)保存文件

至于为什么想把这个思路保存下来,是因为上一套算法找每个用户的订单数据:select * from recharge where uid = 1 and status = 1;
这一条语句只能找到某个用户的充值数据,对于几十万个用户就对应着几十万个请求获取数据,就会特别特别慢。而总结的算法只需要把recharge数据进行一次查询:select * from recharge;然后在本地运算,速度飞快。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SPSS Modeler简介 SPSS Modeler 原名 Clementine,定-^久享盛誉的数据挖掘平乙 软件。它提供完全可视化的图形化界面,主要通过数据流的形式实现 数据挖掘整^过程,具有如下功能: 易学/直观的可视化用户界面:可视化的操作方法,无需在编写代码上 耗费精力和时间、广泛的数据挖掘功能、灵活多样的部署选项。 强劲的自动化建模能力:自动化的数据准备、丰富的模型算法和评估 手段。 开发且可扩展的体系结构:支持SQL推送,在标准数据库内的数据挖 掘。 SPSS Modeler简介 它包括6^节点区:源数据节点(Sources)、记录处理节点(Record Ops)、字段(变量)处理节点(Field Ops)、图形节点(Graphs)、建立模 型节点(Modeling)和输出节点(Output),用户建立模型的过程就 定把各^节点区的节点以连线的方式连在-起。 SPSS Modeler软件从以下=^方面提供对文的全方位支持:可以 读取和写入文值和文字段名;完全的文操作界面和文结果显 示;全面的文帮助和文使用手册,这在国外软件定很少见的。 SPSS Modeler简介 它包括6^节点区:源数据节点(Sources)、记录处理节点(Record Ops)、字段(变量)处理节点(Field Ops)、图形节点(Graphs)、建立模 型节点(Modeling)和输出节点(Output),用户建立模型的过程就 定把各^节点区的节点以连线的方式连在-起。 SPSS Modeler软件从以下=^方面提供对文的全方位支持:可以 读取和写入文值和文字段名;完全的文操作界面和文结果显 示;全面的文帮助和文使用手册,这在国外软件定很少见的。 SPSS Modeler安装 这里使用的版本为SPSS Modeler 14.1。可从官网或者网站 http://www.tipdm.org/jmgj/568.jhtml下载,双击安装盘根目录下 的setup.exe文件即可安装(注意:安装版本位数需与系统位数相匹配)。 安装过程默认点击下-步即可完成安装,点击安装目录bin目录下的 modelerclient.exe启动SPSS Modeler,或者通过开始菜单快捷方 式启动SPSS Modeler 。
数据分析 定义:是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理 解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用 信息和形成结论而对数据加以详细研究和概括总结的过程。 目的:把隐藏在一大批看似杂乱无章的数据背后的信息集和提炼出来,总结出所研究 对象的内在规律,帮助管理者进行判断和决策。 作用:现状分析、原因分析和预测分析 步骤:明确分析目的与框架、数据收集、数据处理、数据分析、数据展现和撰写报告等 6个阶段。 1、明确分析目的与框架 一个分析项目,你的数据对象是谁?分析目的是什么?要解决什么业务问题?目的明确 之后,就可以梳理分析思路整理分析框架。不同的项目对数据的要求,使用的分析手段 是不一样的。所以这些是进行数据分析的方向和前提。 2、数据收集 数据收集是按照确定的数据分析目的和框架内容,有目的的收集、整合相关数据的一个 过程,它是数据分析的一个基础。 3、数据处理 数据处理是指对收集到的数据进行加工、整理,以便开展数据分析,它是数据分析前必 不可少的阶段。这个过程是数据分析整个过程最占据时间的,也在一定程度上取决于 数据仓库的搭建和数据质量的保证。数据处理主要包括数据清洗、数据转化、数据提取 和数据计算等处理方法。 4、数据分析 数据分析是指通过分析手段、方法和技巧对处理过好的数据进行探索、分析,提取有价 值的信息,从发现因果关系、内部联系和业务规律。 这个阶段就要涉及到工具和方法的使用。其一要熟悉常规数据分析方法,如方差、回归 、因子、聚类、分类、时间序列等,这些我在学校可以学习。其二是熟悉数据分析工具 ,Excel最常见,还有专业的分析软件,如数据分析工具SPSS/SAS/R/Matlab等,便于进 行一些专业的统计分析数据建模等。 5、数据展现 一般情况下,数据分析的结果都是通过图、表的方式来呈现,借助数据展现手段,能更 直观的让数据分析师表述想要呈现的信息、观点和建议。 常用的图表包括饼图、折线图、柱形图/条形图、散点图、雷达图等、金字塔图、矩阵图 、漏斗图、帕雷托图等。 6、撰写报告 最后阶段,就是撰写数据分析报告,这是对整个数据分析成果的一个呈现。通过分析报 告,把数据分析的目的、过程、结果及方案完整呈现出来,以供商业目的提供参考。 一份好的数据分析报告,首先需要有一个好的分析框架,并且图文并茂,层次明晰,能 够让阅读者一目了然。另外,数据分析报告需要有明确的结论、建议和解决方案,不仅 仅是找出问题,后者是更重要的,否则称不上好的分析,同时也失去了报告的意义。 数据挖掘(Data Mining) 数据挖掘是知识发现(KDD)的一个关键步骤。一般是指从数据库的海量数据通过算法 揭示出隐含的、先前未知的并有潜在价值的信息的过程。它是一种决策支持过程,主要 基于人工智能、机器学习、模式识别、统计学、数据库、可视化技术等。 数据挖掘的定义分为技术上的定义和商业定义: 1.技术上的定义及含义 数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据,提 取隐含在其的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义 包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知 识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支 持特定的发现问题。 2.商业角度的定义 按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验 证已知的规律性,并进一步将其模型化的先进有效的方法。 数据挖掘任务有两类: 一:描述性挖掘任务:刻画数据库数据的一般特性; 二:预测性挖掘任务:在当前数据的基础上进行推断,以进行预测。 数据挖掘常用的方法: 利用数据挖掘进行数据分析常用的方法主要有分类、回归分析、聚类、关联规则、特征 、变化和偏差分析、Web页挖掘等, 它们分别从不同的角度对数据进行挖掘。 1、分类 分类是找出数据库一组数据对象的共同特点并按照分类模式将其划分为不同的类,其 目的是通过分类模型,将数据库数据项映射到某个给定的类别。它可以应用到客户 的分类、客户的属性和特征分析、客户满意度分析、客户的购买趋势预测等,如一个汽 车零售商将客户按照对汽车的喜好划分成不同的类,这样营销人员就可以将新型汽车的 广告手册直接邮寄到有这种喜好的客户手,从而大大增加了商业机会。 2、回归分析 回归分析方法反映的是事务数据库属性值在时间上的特征,产生一个将数据项映射到 一个实值预测变量的函数,发现变量或属性间的依赖关系,其主要研究问题包括数据序 列的趋势特征、数据序列的预测以及数据间的相关关系等。它可以应用到市场营销的各 个方面,如客户寻求、保持和预防客户流失活动、产品生命周期分析、销售趋势
数据分析与可视化 什么是数据分析? 数据分析是基于商业目的,有目的的进行收集、整理、加工和分析数据,提炼有价信息 的一个过程.其过程概括起来主要包括:明确分析目的与框架、数据收集、数据处理、数 据分析、数据展现和撰写报告等6个阶段。 明确分析目的与框架 一个分析项目,你的数据对象是谁?商业目的是什么?要解决什么业务问题?数据分 析师对这些都要了然于心。基于商业的理解,整理分析框架和分析思路。例如,减少新 客户的流失、优化活动效果、提高客户响应率等等。不同的项目对数据的要求,使用的 分析手段也是不一样的. 2、数据收集 数据收集是按照确定的数据分析和框架内容,有目的的收集、整合相关数据的一个过 程,它是数据分析的一个基础。 数据处理 数据处理是指对收集到的数据进行加工、整理,以便开展数据分析,它是数据分析前 必不可少的阶段。这个过程是数据分析整个过程最占据时间的,也在一定程度上取决 于数据仓库的搭建和数据质量的保证. 数据处理主要包括数据清洗、数据转化等处理方法。 4、数据分析 数据分析是指通过分析手段、方法和技巧对准备好的数据进行探索、分析,从发现 因果关系、内部联系和业务规律,为商业目提供决策参考. 到了这个阶段,要能驾驭数据、开展数据分析,就要涉及到工具和方法的使用。其一 要熟悉常规数据分析方法,最基本的要了解例如方差、回归、因子、聚类、分类、时间 序列等多元和数据分析方法的原理、使用范围、优缺点和结果的解释;其二是熟悉1+1种 数据分析工具,Excel是最常见,一般的数据分析我们可以通过Excel完成,后而要熟悉一个 专业的分析软件,如数据分析工具SPSS/SAS/R/Matlab等,便于进行一些专业的统计分析数据建模等. 5、数据展现 一般情况下,数据分析的结果都是通过图、表的方式来呈现,俗话说:字不如表,表不 如图。借助数据展现手段,能更直观的让数据分析师表述想要呈现的信息、观点和建议。 常用的图表包括饼图、折线图、柱形图/条形图、散点图、雷达图等、金字塔图、矩 阵图、漏斗图、帕雷托图等。 6、撰写报告 最后阶段,就是撰写数据分析报告,这是对整个数据分析成果的一个呈现.通过分析报告 ,把数据分析的目的、过程、结果及方案完整呈现出来,以供商业目的提供参考。 一份好的数据分析报告,首先需要有一个好的分析框架,并且图文并茂,层次明晰, 能够让阅读者一目了然.结构清晰、主次分明可以使阅读者正确理解报告内容;图文并茂 ,可以令数据更加生动活泼,提高视觉冲击力,有助于阅读者更形象、直观地看清楚问题 和结论,从而产生思考. 另外,数据分析报告需要有明确的结论、建议和解决方案,不仅仅是找出问题,后者 是更重要的,否则称不上好的分析,同时也失去了报告的意义,数据的初衷就是为解决 一个商业目的才进行的分析,不能舍本求末. 数据分析常用的方法有哪些?他们多用来分析哪些类型的数据?通过分析可以得到怎样的 结果和结论?怎样得到保证其信度和效度? 常用数据分析方法:聚类分析、因子分析、相关分析、对应分析、回归分析、方差分析 ; 数据分析常用的图表方法:柏拉图(排列图)、直方图(Histogram)、散点图(scatter diagram)、鱼骨图(Ishikawa)、FMEA、点图、柱状图、雷达图、趋势图。 数据分析统计工具:SPSS、minitab、JMP. 常用数据分析方法: 1、聚类分析(Cluster Analysis) 聚类分析指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程。 聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇的对象有很大的 相似性,而不同簇间的对象有很大的相异性。聚类分析是一种探索性的分析,在分类的 过程,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分 类。聚类分析所使用方法的不同,常常会得到不同的结论。不同研究者对于同一组数据 进行聚类分析,所得到的聚类数未必一致. 2、因子分析(Factor Analysis) 因子分析是指研究从变量群提取共性因子的统计技术。因子分析就是从大量的数据 寻找内在的联系,减少决策的困难。 因子分析的方法约有10多种,如重心法、影像分析法,最大似然解、最小平方法、阿尔 发抽因法、拉奥典型抽因法等等。这些方法本质上大都属近似方法,是以相关系数矩阵 为基础的,所不同的是相关系数矩阵对角线上的值,采用不同的共同性 2估值。在社会 学研究,因子分析常采用以主成分分析为基础的反覆法。 3、相关分析(Correlation Analysis) 相关分析(correlation analysis),相关分析是研究现象之间是否存在某种依存关系,并对具体有依存关系的现 象探讨其相关方向以及相关程度.相关关系是一种非确定性的关系,例如

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

透明的胡萝卜_robots

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值