sql数据分析(sql数据分析培训)
本篇文章给大家谈谈sql数据分析,以及sql数据分析培训对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、数据分析人必掌握的数据库语言-SQL指南第六期
- 2、SQLServer和Oracle数据库分析(oraclesql性能分析)
- 3、如何用SQL分析电商用户行为数据(案例)
- 4、sql数据分析需要学什么
- 5、SQL数据分析面试题
- 6、sql数据分析是啥意思
数据分析人必掌握的数据库语言-SQL指南第六期
本篇文章继续围绕SQL的语法重点为大家介绍 连接 和 高级连接 的使用,以及 使用连接的注意事项 。
SQL最强大的功能之一就是能在数据查询的执行中 连接(join)表 。连接是利用SQL的SELECT语句能执行的最重要的操作,很好地理解连接及其语法是学习SQL的极为重要的一点。在能够有效地使用连接前,我们必须了解 关系表 以及 关系数据库 设计的一些基础知识。下面的介绍并不能涵盖这一主题的所有内容,但作为入门已经够了。
连接
理解关系表,最好是来看个例子。
有一个包含产品目录的数据库表,其中每类物品占一行。
对于每一种物品,要存储的信息包括产品描述、价格,以及生产该产品的供应商。
现在有同一供应商生产的多种物品,那么在何处存储供应商名、地址、联系方法等供应商信息呢?将这些数据与产品信息分开存储的理由是:
① 同一供应商生产的每个产品,其供应商信息都是相同的,对每个产品重复此信息既浪费时间又浪费存储空间;
② 如果供应商信息发生变化,例如供应商迁址或电话号码变动,只需修改一次即可;
③ 如果有重复数据(即每种产品都存储供应商信息),则很难保证每次输入该数据的方式都相同。不一致的数据在报表中就很难利用。虚饥
关键是, 相同的数据出现多次不是一件好事 ,这是关系数据库设计的基础。
关系表的设计就是要 把信息分解成多个表 , 一类数据一个表 。各表通过某些共同的值互相关联(所以才叫关系数据库)。在这个例子中可建立两个表:一个存储供应商信息,另一个存储产品信息。Vendors表包含所有供应商信息,每个供应商占一行,具有唯一的标识。此标识称为 主键 (primary key),可以是供应商ID或任何其他唯一值。Products表只存储产品信息,除了存储供应商ID(Vendors表的主键)外,它不存储其他有关供应商的信息。Vendors表的主键将Vendors表与Products表关联,利用供应商ID能从Vendors表中找出相应供应商的详细信息。
这样做的 好处 是:
① 供应商信息不重复,不会浪费时间和空间;
② 如果供应商信息变动,可以只更新Vendors表中的单个记录,相关表中的数据不用改动;
③ 由于数据不重复,使得处理数据和生成报表更简单。
总之,关系数据可以有效地存储,方便地处理。因此,关系数据库的可伸缩性远比非关系数据库要好。
为什么使用连接
连明誉拦接将数据分解为多个表实现 更有效 地存储、 更方便 地处理,且 可伸缩性更好 。
可伸缩性:能够适应不断增激胡加的工作量而不失败。
连接作为一种机制,能在一条SELECT语句中用来关联表。使用特定的语法,可连接多个表返回一组输出。
创建连接
分析 :上述SELECT语句中与之前的语句相同,都是指定检索的列, 区别 在于该语句指定的两列(prod_name,prod_price)在一个表中,而第一列(vend_name)在另一个表中。
FROM子句也有所区别。该FROM子句列出了两个表:Vendors,Products。这两个表由SELECT语句的WHERE子句连接。WHERE子句指示DBMS将Vendors表中的vend_id与Products表中的vend_id匹配起来。
这里使用了 完全限定列名 将Vendors.vend_id和Products.vend_id两列匹配。最终输出了两个不同表中的数据。
高级连接部分将介绍 如何使用表别名,另外的一些连接 ,以及 如何对被连接的表使用聚集函数 。
使用表别名
之前的文章已经给大家介绍了如何使用别名引用被检索的表列。
SQL还可以 给表名起别名 ,目的是:
① 缩短SQL语句。
② 允许在一条SELECT语句中多次使用相同的表。
分析 :上述语句中的FROM子句的三个表都有别名。如此 省略了许多字符 。表别名还可以用于SELECT的列表、ORDER BY子句以及其他语句部分。
需要注意的是: 表别名只在查询执行中使用 。与列别名不同,表别名不返回到客户端。
使用不同类型的连接
接下来将给大家介绍四种其他类型的连接: 自连接 、 自然连接 、 内连接 和 外连接 。
①自连接
分析: 这是使用了 子查询 的方案。对内部的SELECT语句做了一个简单的检索,返回Jim Jones工作公司的cust_name。该数据用于外部查询的WHERE子句中,以检索出为该公司工作的所有雇员。
下面看看使用了 连接 的方案。
分析:上述语句需要的两个表实际上是相同的表,所以Customers表在FROM子句中出现了两次。但这对于Customers的引用具有歧义,因为没有指示DBMS引用的是哪个Customers表。
于是需要使用表别名解决该问题。Customers表 第一次出现为别名c1 , 第二次为c2 ,然后再将这些别名用作表名。如SELECT语句使用c1前缀明确给出所需列的全名。如果不这么做,DBMS将返回错误,因为名为cust_id、cust_name、cust_contact的列各有两个。DBMS不知需要哪一列,即使它们都是同一列。
WHERE首先连接两个表,再按第二个表中的cust_contact过滤数据,返回所需的数据。
②自然连接
内连接 返回所有的数据,其中 相同的列可多次出现 。而 自然连接排除多次出现 ,使每一列只返回一次。
一般通过对一个表使用通配符(SELECT *),而对其他的列使用明确的子集来实现自然连接。
分析: 上述语句中,通配符只对第一个表使用,而所有其他列都明确列出来,所以没有出现重复的列被检索出来。
③内连接
目前为止使用的连接称为等值连接,是基于两个表之间的相等测试。该连接也称为内连接。
对该种连接还可以使用不同的语法,明确指定连接的类型。
分析 :该语句中的SELECT与之前的区别在于FROM 子句。此处两个表之间的关系是以 INNER JOIN 指定的部分FROM子句,因此需要使用特定的 ON子句 而不是WHERE子句。但传递给ON的实际条件与WHERE相同。
④外连接
许多连接将一个表中的行与另一个表中的行相关联,但有时候 需要包含没有关联的行 。例如,可能需要使用连接完成以下工作:
对每个顾客下的订单进行计数,包括那些至今尚未下订单的顾客;
列出所有产品以及订购数量,包括没有人订购的产品;
计算平均销售规模,包括那些至今尚未下订单的顾客。
在上述例子中,连接包含了那些在相关表中没有关联行的行。这种连接称为外连接,外连接分为 左外连接 和 右外连接 。
左外连接:取左边的表的全部,而右边的表按照条件显示,不符合条件的显示NULL。
右外连接:取右边的表的全部,而左边的表按照条件显示,不符合条件的显示NULL。
下面先给出一个简单的 内连接 ,再给出 左外连接 ,大家对比着理解。
分析 :两个语句都使用了 JOIN 关键字来指定连接类型,与内连接不同的是,左外连接包括没有关联行的行。因此在使用JOIN语法时,还需使用RIGHT或LEFT关键字来指定包括其所有行的表(RIGHT指出的是OUTER JOIN右边的表,而LEFT指出的是OUTER JOIN左边的表)。
上述左外连接语句使用了LEFT OUTER JOIN 从FROM子句左边的表(Customers)中选择所有行。
若要从右边的表选择所有行,即使用 右外连接 ,则语句如下:
注意 :两种基本的外连接形式,左外连接和右外连接。两者的唯一差别是所关联的表的顺序。
此外,还有一种外连接,即 全外连接 。该连接检索两个表中的所有行并关联可关联的行。与左外连接或右外连接包含一个表的不关联的行不同,全外连接包含两个表的不关联的行。
自连接、自然连接、内连接和外连接的区别
①自连接: 通常用于 两张结构和数据内容完全一样的表 ,在做数据处理时,对它们分别 重命名 来加以区分,然后再进行关联。
②自然连接 :特点是要求两个关系表中进行连接的必须是 相同属性列 (名字相同),无需添加连接条件,且 在结果中消除了重复的属性列 。
③内连接 :与自然连接相似,区别在于内连接 不要求两属性列同名 ,可以用 using或on 来指定某两列字段相同的连接条件。
④外连接 :可以解决自然连接时某些属性不同导致这些元组被舍弃的问题,起到了 保留要舍弃的结果 的作用。
使用带聚集函数的连接
之前给大家介绍过使用 聚集函数 来汇总数据,殊不知这些函数也可以与连接一起使用。
分析: 上述语句使用了 COUNT函数 。该语句使用INNER JOIN将Customers和Orders表相互关联。GROUP BY子句按顾客分组,因此,函数调用COUNT(Orders.order_num)对每个顾客的订单计数,将其作为num_ord返回。
分析: 上述语句使用 左外连接 包含所有顾客,包括了那些没有任何订单的顾客。
WHERE子句的重要性
需记住的是,在一条SELECT语句中连接几个表时,相应的关系是在运行中构造的,因为在数据库表中的定义没有指示DBMS如何对表进行连接的内容。
要连接多个表,需要将它们并列于from之后, 关键 是要设置WHERE子句,确保它们之间的 关联关系 必须给出,否则,查询结果会成为笛卡尔积。
笛卡尔积:由没有连接条件的表关系返回的结果为笛卡儿积。
分析 :上述语句输出的结果便是 笛卡尔积 。返回的数据用每个供应商匹配了每个产品,包括了供应商不正确的产品(即使该供应商没有产品)。
连接及其使用的要点
① 注意所使用的连接类型。一般我们使用内连接,但使用外连接也有效。
② 关于确切的连接语法,应该查看具体的文档,看相应的DBMS支持何种语法(大多数DBMS使用这两课中描述的某种语法)。
③ 保证使用正确的连接条件(不管采用哪种语法),否则会返回不正确的数据。
④ 应该总是提供连接条件,否则会得出笛卡儿积。
⑤ 在一个连接中可以包含多个表,甚至可以对每个连接采用不同的连接类型。虽然这样做是合法的,一般也很有用,但应该在测试它们前分别测试每个连接。这会使故障排除更为简单。
以上就是本次介绍的连接和高级连接啦~
下一期将给大家介绍 组合查询 、 插入数据 及 更新和删除数据。
我们下期见!
[img]SQLServer和Oracle数据库分析(oraclesql性能分析)
分析原则:
1、具体问题具体分析(这是由于不同的应用系统,不同的测试目的,不同的性能关注点)
2、查找瓶颈时按以下顺序,由易到难。
服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)注:以上过程并不是每个分析中都需要的,要根据测试目的和要求来确定分析的深度。对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。分段排除法很有效。
分析的信息来源:1、根据场景运行过程中的错误提示信息;
2、根据测试结果收集到的监控指标数据。
一、错误提示分析
分析实例:
1、Error:“10.10.10.30:8080〃:[10060]Connection
Error::Server“10.10.10.30〃
分析:
A、应用服务死掉(小用户时:程序上的问题。程序上处理数据库的问题)
B、应用服务没有死(应用服务参数设置问题)
例:在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的server元素的AeptBacklog属性值设得过低。如果连接时收到消息,说明应提高该值,每次增加25%
C、数据库的连接(1、在应用服务的性能参数可能太小了;2、数据库启动的最大连接数(跟硬件的内存有关)。)
分析:可能是以下原因造成
A、誉丛应用服务参庆掘樱数设置太大导致服务器的瓶颈;B、页面中图片太多;C、在程序处理表的时候检查字段太大多。
二.监控指标数据分析
1、最大并发用户数:
应用系统在当前环境(硬件环境、网络环境、软件环境(参数配置))下能承受的最大并发用户数。在方案运行中,如果出现了大于3个用户的业务操作失败,或出现了服务器shutdown的情况,则说明在当前环境下,系统承受不了当前并发用户的负载压力,那么最大并发用户数就是前一个没有出现这种现象的并发用户数。如果测得的最大并发用户数到达了性能要求,且各服务器资源情况良好,业务操作响应时间也达到了用户要求,那么可行。否则,再根据各服务器的资源情况和业务操作响应时间进一步分析原因所在。
2、业务操作响应时间:
分析方案运行情况应从平均事务响应时间图和事务性能摘要图开始。使用“事务性能摘要”图,可以确定在方案执行期间响应时间过长的事务。细分事务并分析每个页面组件的性能。如果服务器耗时过长,请使用相应的服务器图确定有问题的服务器度量并查明服务器性能下降的原因。如果网络耗时过长,请使用“网络监视器”图确定导致性能瓶颈的网络问题
3、服务器资源监控指标:内存:
1、UNIX资源监控中指标内存页交换速率(Pagingrate),如散衡果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。
2、Windows资源监控中,如果Process计数器和ProcessWorkingSet计数器的值在长时间内持续升高,同时Memory计数器的值持续降低,则很可能存在内存泄漏。
内存资源成为系统性能的瓶颈的征兆:很高的换页率();进程进入不活动状态;交换区所有磁盘的活动次数可高;可高的全局系统CPU利用率;内存不够出错()。
处理器:
1、UNIX资源监控(Windows操作系统同理)中指标CPU占用率(),如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。如果服务器专用于SQLServer,可接受的最大上限是80-85%合理使用的范围在60%至70%。
2、Windows资源监控中,如果System大于2,而处理器利用率()一直很低,则存在着处理器阻塞。
CPU资源成为系统性能的瓶颈的征兆:很慢的响应时间();CPU空闲时间为零();过高的用户占用CPU时间();过高的系统占用CPU时间();长时间的有很长的运行进程队列()。
磁盘I/O:
1、UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Diskrate),如果该参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。
2、Windows资源监控中,如果DiskTime和Avg.DiskQueueLength的值很高,而PageReads/sec页面读取操作速率很低,则可能存在磁盘瓶径。
I/O资源成为系统性能的瓶颈的征兆:过高的磁盘利用率(highdiskutilization);
太长的磁盘等待队列(largediskqueuelength);
等待磁盘I/O的时间所占的百分率太高(largepercentageoftimewaitingfordiskI/O);
太高的物理I/O速率:largephysicalI/Orate(notsufficientinitself);
过低的缓存命中率(lowbuffercachehitratio(notsufficientinitself));
太长的运行进程队列,但CPU却空闲(largerunqueuewithidleCPU)。
4、数据库服务器:
SQLServer数据库:
1、SQLServer资源监控中指标缓存点击率(CacheHitRatio),该值越高越好。如果持续低于80%,应考虑增加内存。
2、如果FullScans/sec(全表扫描/秒)计数器显示的值比1或2高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。
3、NumberofDeadlocks/sec(死锁的数量/秒):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0。
4、LockRequests/sec(锁请求/秒),通过优化查询来减少读取次数,可以减少该计数器的值。
Oracle数据库:
1、如果自由内存接近于0而且库快存或数据字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小。
快存(共享SQL区)和数据字典快存的命中率:select(sum(pins-reloads))/sum(pins)fromv$librarycache;
select(sum(gets-getmisses))/sum(gets)fromv$rowcache;
自由内存:select*fromv$sgastatwherename=‘freememory’。
2、如果数据的缓存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS参数的值(单位:块)。
缓冲区高速缓存命中率:selectname,valuefromv$sysstatwherenamein(‘dbblockgets’,‘consistentgets’‘physicalreads’)HitRatio=1-(physicalreads/(dbblockgetsconsistentgets))。
3、如果日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。
日志缓冲区的申请情况:selectname,valuefromv$sysstatwherename=‘redologspacerequests’。
4、如果内存排序命中率小于0.95,则应加大SORT_AREA_SIZE以避免磁盘排序。
内存排序命中率:selectround((100*b.value)/decode((a.valueb.value),0,1,(a.valueb.value)),2)fromv$sysstata,v$sysstatbwherea.name=’sorts(disk)’andb.name=’sorts(memory)’
注:上述SQLServer和Oracle数据库分析,只是一些简单、基本的分析,特别是Oracle数据库的分析和优化,是一门专门的技术,进一步的分析可查相关资料。
如何用SQL分析电商用户行为数据(案例)
本文以“淘宝用户行为数据集”的分析全过程为例,展示数据分析的全过程
——使用工具:MySQL,Excel,Navicat,PowerBI
——分析类型:描述分析,诊断分析
——分析方法:漏斗分析,用户路径分析,RFM用户价值分析,活跃/存留分析,帕累托分析,假设验证分析。
(考虑到阅读体验文章中只放了SQL截图,如需PDF版本,再公众号后台回复“用户行为分析”领取)
(目录如下)
1.分析流程和方法
当没有清晰的亩尺数据看板时我们需要先清洗杂乱的数据,基于分析模型做可视化,搭建描述性的数据看板。
然后基于描述性的数据挖掘问题,提出假设做优化,或者基于用户特征数据进行预测分析找规律,基于物皮规律设计策略。简单来说:
——描述性分析就是:“画地图”
——诊断性分析就是:“找问题”
——预测性分析就是 :“找规律”
在数据分析中有两个典型的场景:
一种是有数据,没有问题:需要先整体分析数据,然后再根据初步的描述分析,挖掘问题做诊断性分析,提出假设,设计策略解决问题。
另一种是已经发现了问题,或者已经有了假设,这种做数据分析更偏向于验证假设。
2.淘宝用户行为分析
本次是对“淘宝用户行为数据集”进行分析,在分析之前我们并不知道有什么问题,所以需要先进行描述性分析,分析数据挖掘问题。
我们首先来看下这个数据集的迅蚂高元数据:
根据以上数据字段我们可以拿用户行为为主轴从纵深方向提出一些问题,然后再从数据中找答案
纵向:
——这个数据集中用户的日活跃和周活跃时间有什么规律吗?
——在当日活跃的用户次日,三日,四日……还有多少活跃?
深向:
——用户从浏览到购买的整体转化率怎么样?
——用户从浏览到购买的路径是怎么样子的?
——平台主要会给用户推送什么商品?
——用户喜欢什么类目?喜欢什么商品?
——怎么判断哪些是高价值用户 ?
下面是叮当整理的常用分析方法:
我们可以给前面的问题匹配一下分析方法,便于后面的分析:
为了便于后面的数据分析,在分析之前我们需要先对做一下清洗
看元数据(字段解释,数据来源,数据类型,数据量……)初步发现问题为之后的处理做准备。
确定缺失值范围,去除不需要字段,填充缺失内容
根据元数据格式和后续分析需要的格式对数据进行处理
去除重复值,异常值
——去除重复值:并把用户ID,商品ID,时间戳设置为主键
——异常值处理:查询并删除2017年11月25日至2017年12月3日之外的数据
查询并删除小于2017-11-25的
——验证数据:
——分析思路:
——SQL提数:
——Excel可视化:
活跃曲线整体为上升状态,同为周六日,12月2号,3号相比11月25日,26日活跃度更高。
用户在周六周日相比其他时间更活跃(周六周日为休息日,用户有更多时间)
一天内用户活跃的最高峰期为21点(用户在这个时间段空闲较多)
——分析思路:
——SQL提数:
列出每用户每天及当天后面又活跃的日期,并创建“活跃时间间隔表”用于后面求次日存留,三日存留……
对“活跃时间间隔表视图”引用进行分组统计,计算每日存留人数并创建视图
对存留人数表进行计算,统计活跃用户留存率
——Excel可视化:
——分析思路:
——SQL提数:
-把各种用户行为分离出来并创建视图方便后续查询用户行为数据
查询整体数据漏斗
——Excel可视化:
用户从浏览到购买整体转化率2.3%,具体主要在哪个环节流失还需要再细分用户路径分析
——分析思路:
——SQL提数:
——PowerBI可视化:
用户从浏览到购买的路径主要有4条,路径越长转化率越底
路径1:浏览→购买:转化率1.45%
路径2:浏览→加购物车→购买:转化率0.33
路径3:浏览→收藏→购买:转化率0.11%
路径4:浏览→收藏→加购物车→购买:转化率0.03%
——分析思路:
——SQL提数:
——Excel可视化:
——描述性分析:
浏览量top100的商品浏览量呈阶梯分布,越靠前的阶梯之间的落差相对越大在这个阶梯中的商品越少,越靠后商品浏览量阶梯之间的落差相对越小,同阶梯内的商品越多。
浏览量TOP100的商品所属类目中,4756105,3607361,4357323三个类目浏览量远超其他类目。
——分析思路:
——SQL提数:
查询计算商品转化率,升序排列,取前100个
——Excel可视化:
——描述性分析:
从商品看:有17款商品转化率超过了1。
从类目看:这些商品所属类目分布均匀,除965809,4801426,2735466,2640118,5063620,4789432,2945933这7个类目之外,其他类目都只有一个商品在转化率TOP100的商品中。
——分析思路:
用户价值分析常用的分析方式是RFM模型
本次分析中的R,F,M具体定义(仅用于演示分析方法,无实际业务参考价值):
——SQL取数与分析:
1)建立打分标准:先计算R,F的值,并排序,根据R,F值最大值和最小值得区间设计本次得打分标准
-查询并计算R,F值创建视图
-引用RF数值表,分别查询R,F的最大值和最小值
-结合人工浏览的建立打分标准
2)给R,F按价值打分
3)计算价值的平均值
4)用平均值和用户分类规则表比较得出用户分类
——Excel可视化
通过描述性分析得到可视化的数据后我们一般会先看一下是否符合业务常识
如果符合常识接下来我们会通过与行业平均数据和本产品的同比环比对比看是否正常,如果不正常就要找原因,设计解决方案,如果正常那就看是否有可以优化的地方。
我们首先来看一下这些描述性分析是否符合业务常识和指标是否正常:
1.活跃曲线整体为上升状态,同为周六日,12月2号,3号相比11月25日,26日活跃度更高。
2.用户在周六周日相比其他时间更活跃
3.一天内用户活跃的最高峰期为21点
4.从2017年11月15日致2017年12月3日,活跃用户新增38%
5.从2017年11月15日致2017年12月3日,活跃用户次日留存增长18.67%,当日的活跃用户留存也在快速增长,第七日留存比次日留存高18.56%。
6.用户从浏览到购买整体转化率2.3%
7.用户从浏览到购买的路径主要有4条,路径越长转化率越低。
8.浏览量top100的商品浏览量呈阶梯分布,越靠前的阶梯之间的落差相对越大在这个阶梯中的商品越少,越靠后商品浏览量阶梯之间的落差相对越小,同阶梯内的商品越多。
9.浏览量TOP100的商品所属类目中,4756105,3607361,4357323三个类目浏览量远超其他类目。
10.从商品看:有17款商品转化率超过了1。
11.从类目看:这些商品所属类目分布均匀,除965809,4801426,2735466,2640118,5063620,4789432,2945933这7个类目之外,其他类目都只有一个商品在转化率TOP100的商品中。
根据以上诊断分析我们梳理出了以下假设,做假设验证。
假设1:这些商品中有高转化率的爆款商品
对比浏览量TOP5的商品,发现这些商品转化率在同一类目下并不高,假设不成立
假设2:4756105,3607361,4357323三个类目属于高频刚需类目
-创建类目购买频次表
-计算类目购买频次平均值
-查询4756105,3607361,4357323三个类目的购买频次
4756105,3607361,4357323三个类目的用户购买频次明显高于平均值,假设成立
假设3:有部分用户是未点击商详直接从收藏和购物车购买的。
用户不是直接从收藏和购物车购买的,只是后续复购未点击商详,假设不成立
假设4:淘宝推荐的商品主要是“同一类目下的高转化商品”
用Excel对浏览量TOP100的商品ID和转化率TOP100的商品ID进行去重,结果无重复值,假设不成立
3.结论:
1)用户活跃:用户活跃曲线整体呈上升趋势,在一周中周六,周日活跃度比平时更高,在一天中用户活跃曲线从凌晨4点开始往上升,在中午12点和下午5~6点有两个小低谷(吃饭),到晚上9点时活跃度达到顶峰。
2)用户留存:从2017年11月15日致2017年12月3日的用户留存数据来看,淘宝的用户留存数据较好,活跃用户次日留存增长18.67%,当日的活跃用户留存也在快速增长,第七日留存比次日留存高18.56%。
3)用户转化:整体转化2.3%,用户从浏览到购买的路径主要有4条,路径越长转化率越低。
4)平台推荐与用户偏好:从数据集中的数据来看,排除用户兴趣偏好标签,淘宝给用户用户推送的商品主要是高频刚需的类目,促使用户复购,流量回流平台。
以上结论受数据量和数据类型的影响,并不一定准确,仅用来练习数据分析方法。
(考虑到阅读体验文章中只放了SQL截图,如需PDF版本,再公众号后台回复“用户行为分析”领取)
sql数据分析需要学什么
作为数据分析核巧师,你首先需要从正在查询的数据库中读取数据。我们一般会采用这种方法:
了解SELECT语句的工作方式。这其中包括研究逻辑查询处理的工作方式。逻辑查询处理描述了数据库引擎执行SELECT语句的子句的顺序。了解它会引导你编写更好,更准确的查询。
研究联接的工作方式
内部联接是最有效的。左,右和完全外部联接的效率较低,但有时必须使用它们。内部联接可以歼埋导致行被过滤掉,外部联接不能导致过滤。研究加入,因此你知道何时使用每种类型。只有最简单的数据库查询才不涉及联接。
了解如何使用GROUP BY子句进行聚合
了解窗口函数/有序分析函数。这些是在SQL中进行分析的缩影。最初很难将你的头缠绕在它们周围,但是这是值得的。一旦了解了它们,便会一直使用它们。
了解数据库规范化。如果你了解规范化,你将了解为什么架构师以这种方式构造数据库的理论。这有助于编写查询并确定要联接的表。
了解实体关系图(ERD)的工作方式。大多氏氏蚂数ERD是使用鱼尾纹符号构建的。确保知道基数和可选性约束是如何工作的,这将帮助你解密连接表时要使用的连接类型。
一旦掌握了这些知识,就应该扩展到学习SQL的DML和DDL子类别。DML代表数据操作语言,SELECT语句是该语言的一部分。DDL代表数据定义语言,这是数据库架构师用来创建表的语言。
本文禁止转载或摘编
本文为我原创
大数据
数据分析
数据分析师
1
收藏
分享
推荐文章
35岁转行数据分析师可以吗?
学习 · 56阅读
Excel之PowerQuery 提取单元格指定文字
学习 · 175阅读
[简述]答题验证系统部署说明
学习 · 865阅读
SQL数据分析面试题
1、现有交易数据表user_goods_table,
老板想知道每个用户购买的外卖品类偏好分布,并找出每个用户购买最多的外卖品类是哪个。
2、现有交易数据表user_sales_table,
老板想知道支付金额在前20%的用户。
3、现有用户登录表user_login_table,
老板想知悔裤物道连续7天都登录平台的重要用户。
4、给定一张用户签到表user_attendence,表中包含三个字段,分别是用户ID:【user_id】碧液,日期:【date】,是否签到:【is_sign_in】,0否1是。
4-1、计算截至当前(假设当前时间为2020-04-27),每个用户已经连续签到的天数:
要求输出用户ID【user_id】和连续签到天数【recent_continuous_days】
4-2、计算有史以来 用户最大连续签到天数 :纯培
要求输出用户ID【user_id】和最大连续签到天数
sql数据分析是啥意思
sql数据分析是结构化查询语言。
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关敬逗系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式。
所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
SQL具有数据定义、数据操纵、数据查询和数据控制的功能。
1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式(Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
2、SQL数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
3、SQL的数据控制功能:主要是对用户的友稿敏访问权限加以控制,以保证系统的安全性好枝。
关于sql数据分析和sql数据分析培训的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。