读后感:《SQL数据分析实战》运营SQL实用手册
学习SQL,先有用起来,有了使用价值,之后才是去了解它的原理,让使用更加顺畅。
在大部分业务场景中,通过SQL可以快速的实现数据处理与统计。《SQL数据分析实战》区别于其他工具书,它并没有介绍SQL是什么,而是直接讲了如何使用。就好像大模型一样,我们只需要知道怎么用就好。
在《SQL数据分析实战》一书中,根据日常营销、运营、市场中需要统计的数据内容做了归纳,整体来看可以分为下面几个部分。
1、为什么运营需要用SQL
1.1、哪些场景需要用到SQL
1.2、运营用SQL解决哪些问题
2、具体需要用到的SQL内容
3、常用的SQL统计模板
为什么运营需要用SQL
运营的定位
运营的定位是企业中负责推动产品或服务的日常运作、维护和发展,确保其在市场上的活跃度和竞争力。不仅涉及日常管理,还包括战略规划与执行,旨在实现企业的长期目标。
- 用户关系管理: 通过有效的用户管理策略,如社区运营、客户服务等,增强用户的粘性和忠诚度。
- 数据分析能力: 运营人员需具备强大的数据分析能力,以便从大量数据中提取有价值的信息,指导运营决策。
- 项目管理技能: 能够有效管理多个项目,确保每一个项目都能按时完成并达到预期效果。
《SQL数据分析实战(第2版)》([美]马特·古德瓦瑟,等)【摘要 书评 试读】- 京东图书
哪些场景需要用到SQL
运营数据分析的运用场景广泛,涵盖从用户行为分析到产品优化、销售预测和市场趋势分析等多个方面。这种多维度的应用使得数据分析成为企业运营不可或缺的一部分。下面将详细探讨运营数据分析的各种应用场景:
- 用户行为分析
- 用户细分:通过分析用户的购买历史、浏览习惯和交互行为,企业可以将用户分为不同的群体,以便提供更加个性化的服务或产品。
- 用户体验优化:利用用户在平台上的行为数据,比如点击率、页面访问时长等,可以评估并改进网站的用户界面和用户体验。
- 产品优化
- 功能迭代:基于用户行为数据分析,识别哪些功能受欢迎,哪些需要改进或淘汰,帮助产品更贴近市场需求。
- 市场调整:分析不同市场或用户群体对产品功能的接受度,调整产品策略以适应不同市场的特定需求。
- 销售预测
- 趋势分析:通过对历史销售数据的分析,预测未来的销售趋势,帮助企业提前做好库存和供应链管理。
- 效果评估:分析营销活动的效果,如优惠券使用情况和促销代码追踪,以优化营销策略并提高ROI。
- 市场趋势分析
- 竞争对手监控:通过分析竞争对手的市场表现和客户反馈,调整自身的市场策略,保持竞争优势。
- 市场机会识别:利用行业数据和市场趋势分析,识别新的市场机会或潜在增长领域。
- 风险管理
- 异常检测:分析用户行为数据,识别异常模式,如欺诈行为或安全漏洞,保护企业免受损失。
- 合规性监控:确保数据处理和分析过程符合相关法律法规,如GDPR或其他数据保护规定。
运营用SQL解决什么问题
- 数据提取与查询
- 基本数据获取:运营人员经常需要从数据库中提取特定时间范围或条件下的数据,例如订单信息、用户活跃度等。通过简单的SQL查询,如使用
SELECT
语句结合WHERE
子句,可以直接从数据库中快速获得所需数据。 - 多表数据整合:在实际业务场景中,所需信息往往分散在不同的表中,如订单详情、产品信息和用户资料等。通过SQL的多表查询功能,例如使用
INNER JOIN
或LEFT JOIN
,能够有效地合并多个表中的数据,为运营决策提供全面的数据支持。 - 数据分析与洞察
- 业绩指标计算:运营团队需要定期计算各种业务指标,如总销售额、平均订单值等。通过SQL的聚合函数如
SUM()
、AVG()
等,可以快速计算出这些关键指标,帮助评估运营效果。 - 复杂数据分析:对于更复杂的分析需求,如计算留存率、客户生命周期价值等,SQL的窗口函数和自定义聚合功能提供了强大的数据处理能力。例如,使用
OVER(PARTITION BY)
可以进行分组计算,有效支持复杂的业务分析。 - 报告自动化与优化
- 数据可视化支持:虽然SQL本身不直接支持数据可视化,但其处理后的数据可以方便地导入到BI工具中进行图表展示。这样,运营人员可以通过图形界面直观地监控业务趋势和性能指标。
- 自动报告生成:通过定时运行的SQL查询和存储过程,可以实现数据报告的自动更新。这不仅提高了工作效率,还能确保运营团队总是掌握最新的业务数据。
- 效率提升与沟通简化
- 减少技术依赖:运营人员如果掌握了SQL,可以在不依赖IT部门的情况下自行处理数据查询和分析任务。这不仅加快了工作流程,也减轻了技术团队的工作负担。
需要掌握哪些SQL技能
SQL的基础数据类型
SQL的基础数据类型主要有以下几种:
1.数值类型:包括整数类型(如INT、SMALLINT、TINYINT等)、浮点数类型(如FLOAT、DOUBLE、REAL等)和定点数类型(如DECIMAL、NUMERIC等)。
2.字符串类型:用于存储字符数据,包括CHAR、VARCHAR、TEXT等。其中,CHAR是定长字符串,VARCHAR是变长字符串,TEXT用于存储大量文本数据。
3.日期和时间类型:用于存储日期和时间数据,包括DATE、TIME、DATETIME、TIMESTAMP等。其中,DATE表示日期,TIME表示时间,DATETIME表示日期和时间,TIMESTAMP表示时间戳。
4.二进制类型:用于存储二进制数据,包括BINARY、VARBINARY、BLOB等。其中,BINARY是定长二进制数据,VARBINARY是变长二进制数据,BLOB用于存储大量二进制数据。
5.布尔类型:用于存储逻辑值,包括BOOLEAN、BIT等。其中,BOOLEAN表示布尔值,BIT表示位值。
6.数据结构:JSON和数组,如JavaScript对象表示法(JavaScript object notation,JSON)和数组。数组是简单的数据列表,通常用方括号括起来,如['cat','dog','horse'];JSON对象说一系列以逗号分隔并用大括号括起来的键值对,如{'name':'Bob','age':27'}。
SQL查询的基础关键语法
select :输出筛选分组聚合后的最终展示列名和聚合运算列
from:从数据表获取数据
where:筛选数据的条件逻辑
and/or:筛选条件之间的关系
in/not in:范围条件筛选
is null/is not null:是否为空判断
group by:对筛选后数据进行分组聚合
having:对聚合列进行过滤
order by:对输出结果按指定列排序
limit 5:限制输出数据行数
SQL查询的数据组合
1.使用join连接表(inner和outer可省略):用on关联对应的列名。
如:
select * from table1 left join table2 on table1.name = table2.name
2.使用union (all)对表进行上下合并(加all表示不去重),注意表对相同列输出列名需保持一致,否则会同时展示两个表的列。
如:
select * from table1
union all
select * from table2
3.公用表表达式:使用with建立临时表
with tb as (select * from table1
)
select * from tb
常用的SQL函数和取数模板
常用的SQL函数
1.转换数据
case when函数:将查询列中的值映射为其他值
case when ... then '...' when ... then ''else '' end as new_columns
coalesce函数:填充为首个非空值
nullif函数:如果第一个值等于第二个值则返回null
least函数:返回任意数量的值的最小值
greatest函数:返回任意数量的值的最大值
转换函数:columns::datatype(columns为列名,datatype为数据类型)
distinct函数:获得唯一不同列组合
distinct on函数:对目标列存在相同数据,仅返回一行数据,可配合order by对保留行进行选择
如:
select distinct on (first_name),* from table order by first_name,hire_date
2.聚合函数
count(columns):计算非空行数
count(*):计算所有行数
min():最小值
max():最大值
sum():求和
avg():求平均值
stddev():求标准差
var():求方差
regr_slope(x,y):求x为因变量,y为自变量时线性回归的斜率
regr_intercept(x,y):求x为因变量,y为自变量时线性回归的截距
corr(x,y):求x与y之间的皮尔逊相关系数
3.窗口函数
select {columns},{window_func} over (partition by {key} order by {order_key}) from table
其中:window_func表示窗口函数,key表示要分区的列,order_key表示要排序的列;常用窗口函数有:
- row_number:1,2,3
- rank:1,1,3
- dense_rank:1,1,2
- ntile(n):基于order by计算n分位数
- lag(columns,n):返回columns列当前行向前n行数据
- lead(columns,n):返回columns列当前行向后n行数据
frame子句:(PRECEDING:往前 - FOLLOWING:往后)
如,滚动的近7天数据:
select date
,amount
,avg(amount) over(order by date rows between 7 preceding and current row) as date_move_7_avg
from table
相关文章:

读后感:《SQL数据分析实战》运营SQL实用手册
学习SQL,先有用起来,有了使用价值,之后才是去了解它的原理,让使用更加顺畅。 在大部分业务场景中,通过SQL可以快速的实现数据处理与统计。《SQL数据分析实战》区别于其他工具书,它并没有介绍SQL是什么&…...

建设人工智能平台,主流GPU卡选型分析
国内外主流GPU卡性能分析!2024! 大模型兴起助推算力需求激增 2024年,深度学习与人工智能技术飞速跃进,Transformer、GPT-3等大模型在自然语言处理、图像识别、语音合成等领域大放异彩,开启AI新纪元。其庞大的参数与数…...

RTSPtoWebRTC、RTSPtoWeb ( 自HTML播放):页面中预览摄像机视频,无插件的播放方式,适合局域网使用,无需流媒体服务器
文章目录 引言I 环境准备II RTSPtoWebRTC2.1 下载和编译2.2 配置config.jsonIII RTSPtoWebRTC问题优化: 使用http接口生成视频资源进行播放3.1 调用http接口生成视频资源进行播放3.2 启动关闭IV RTSPtoWeb4.1 config.json4.2 RTSPPlayersee also引言 需求: 海域感知,云台监控…...

C语言| 三个整数从小到大排序
【分析思路】 三个整数从小到大排序 这个程序的算法是: 先把第一个数num1跟它后面所有的数相比较,找出最小的,通过中间变量temp交换,赋给num1; 接着中间值num2和它后面所有的数相比较,找出第二小的,然后赋给…...

C语言基础编程题目解析:探索逻辑与算法的奥秘
C语言基础编程题目解析:探索逻辑与算法的奥秘 在编程的世界里,C语言作为一门基础且强大的编程语言,其题目往往涵盖了丰富的逻辑和算法知识。下面,我们将从四个方面、五个方面、六个方面和七个方面,对一系列C语言基础编…...

jmeter基础入门练习题
jmeter存在A,B两个线程组的情况下,默认设置下,运行顺序是:A A:A,B同时运行 B:先运行A,在运行B C:先运行A,等待2s运行B D:先A运行完,等待默认设置时间后运行B 下列说法正…...

大数据技术原理(三):HDFS 最全面的 API 操作,你值得收藏
(实验二 熟悉常用的HDFS操作) -------------------------------------------------------------------------------------------------------------------------------- 一、实验目的 1.理解 HDFS在 Hadoop体系结构中的角色。 HDFS是一个分布式文件系…...

Flink系列二:DataStream API中的Source,Transformation,Sink详解(^_^)
在上面篇文章中已经对flink进行了简单的介绍以及了解了Flink API 层级划分,这一章内容我们主要介绍DataStream API 流程图解: 一、DataStream API Source Flink 在流处理和批处理上的 source 大概有 4 类: (1)基于本…...

最好的电脑数据恢复软件是什么
由于硬件故障、恶意软件攻击或意外删除而丢失文件可能会造成巨大压力。数据丢失会扰乱日常运营,造成宝贵的业务时间和资源损失。在这些情况下,数据恢复软件是检索丢失或损坏数据的最简单方法。 数据恢复软件何时起作用? 对于 Windows 数据恢…...

机器学习模型调试学习总结
1.学习内容 模型调试方法:冻结部分层,训练剩余层 实践:在一个预训练的 BERT 模型上冻结部分层,并训练剩余的层 模型调试方法:线性探测(Linear Probe) 实践:在一个预训练的 BERT …...

文明互鉴促发展——2024“国际山地旅游日”主题活动在法国启幕
5月29日,2024“国际山地旅游日”主题活动在法国尼斯市成功举办。中国驻法国使领馆、法国文化旅游部门、地方政府、国际组织、国际山地旅游联盟会员代表、旅游机构、企业、专家、媒体等围绕“文明互鉴的山地旅游”大会主题和“气候变化与山地旅游应对之策”论坛主题展…...

【C++进阶】深入STL之string:掌握高效字符串处理的关键
📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:C模板入门 🌹🌹期待您的关注 🌹🌹 ❀STL之string 📒1. STL基本…...

一、初识Qt 之 Hello world
一、初识Qt 之 Hello world 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 初识Qt 之 Hello world文章目录 一、Qt 简介二、Qt 获取安装三、Qt 初步使用四、Qt 之 Hello world1.新建一个项目 总结 一、Qt 简介 C …...

nginx搭建简单负载均衡demo(springboot)
目录 1 安装nignx 1.1 执行 brew install nginx 命令(如果没安装brew可百度搜索如何安装brew下载工具。类似linux的yum命令工具)。 1.2 安装完成会有如下提示:可以查看nginx的配置文件目录。 1.3 执行 brew services start nginx 命令启动…...

SpringBoot的第二大核心AOP系统梳理
目录 1 事务管理 1.1 事务 1.2 Transactional注解 1.2.1 rollbackFor 1.2.2 propagation 2 AOP 基础 2.1 AOP入门 2.2 AOP核心概念 3. AOP进阶 3.1 通知类型 3.2 通知顺序 3.3 切入点表达式 execution切入点表达式 annotion注解 3.4 连接点 1 事务管理 1.1 事务…...

react、vue动态form表单
需求在日常开发中反复写form 是一种低效的开发效率,布局而且还不同这就需要我们对其封装 为了简单明了看懂代码,我这里没有组件,都放在一起,简单抽离相信作为大佬的你,可以自己完成, 一、首先我们做动态f…...

halcon程序如何导出C#文件
1.打开halcon文件; 2.写好需要生成C#文件的算子或函数; 3.找到档案-输出,如下图; 4.点击输出,弹出如下窗口 (1)可以修改导出文件的存储路径 (2)选择C#-HALCON/.NET &…...

RabbitMQ三、springboot整合rabbitmq(消息可靠性、高级特性)
一、springboot整合RabbitMQ(jdk17)(创建两个项目,一个生产者项目,一个消费者项目) 上面使用原生JAVA操作RabbitMQ较为繁琐,很多的代码都是重复书写的,使用springboot可以简化代码的…...

第八十九周周报
学习目标: 论文 学习时间: 2024.05.25-2024.05.31 学习产出: 一、论文 SAN: INDUCING METRIZABILITY OF GAN WITH DISCRIMINATIVE NORMALIZED LINEAR LAYER 将GAN与切片最优输运联系起来,提出满足方向最优性、可分离性和单射…...

Centos升级Openssh版本至openssh-9.3p2
一、启动Telnet服务 为防止升级Openssh失败导致无法连接ssh,所以先安装Telnet服务备用 1.安装telnet-server及telnet服务 yum install -y telnet-server* telnet 2.安装xinetd服务 yum install -y xinetd 3.启动xinetd及telnet并做开机自启动 systemctl enable…...

茉莉香飘,奶茶丝滑——周末悠闲时光的绝佳伴侣
周末的时光总是格外珍贵,忙碌了一周的我们,终于迎来了难得的闲暇。这时,打开喜欢的综艺,窝在舒适的沙发里,再冲泡一杯香飘飘茉莉味奶茶,一边沉浸在剧情的海洋中,一边品味着香浓丝滑的奶茶&#…...

揭秘:Java字符串对象的内存分布原理
先来看看下面寄到关于String的真实面试题,看看你废不废? String str1 "Hello"; String str2 "Hello"; String str3 new String("Hello"); String str4 new String("Hello");System.out.println(str1 str2)…...

Vue.js - 生命周期与工程化开发【0基础向 Vue 基础学习】
文章目录 Vue 的生命周期Vue 生命周期的四个阶段Vue 生命周期函数(钩子函数 工程化开发 & 脚手架 Vue CLI**开发 Vue 的两种方式:**脚手架目录文件介绍项目运行流程组件化开发 & 根组件App.vue 文件(单文件组件)的三个组成…...

Element-UI 快速入门指南
Element-UI 快速入门指南 Element-UI 是一套基于 Vue.js 的桌面端组件库,由饿了么前端团队开发和维护。它提供了丰富的 UI 组件,帮助开发者快速构建美观、响应式的用户界面。本篇文章将详细介绍 Element-UI 的安装、配置和常用组件的使用方法,帮助你快速上手并应用于实际项…...

2024华为OD机试真题-整型数组按个位值排序-C++(C卷D卷)
题目描述 给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序, 十进制最低位相同的元素,相对位置保持不变。 当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。 输入描述 给定一个非空数组,其元素数据类型…...

善听提醒遵循易经原则。世界大同只此一路。
如果说前路是一个大深坑,那必然是你之前做的事情做的不太好,当坏的时候,坏的结果来的时候,是因为你之前的行为,你也就不会再纠结了,会如何走出这个困境,是好的来了,不骄不躁…...

CrossOver有些软件安装不了 用CrossOver安装软件后如何运行
CrossOver为用户提供了三种下载软件的方式分别是:搜索、查找分类、导入。如果【搜索】和【查找分类】提供的安装资源不能成功安装软件,那么我们可以通过多种渠道下载安装包,并将安装包以导入的方式进行安装。这里我们以QQ游戏为例,…...

在vue中如何使用leaflet图层展示地图
在vue中如何使用leaflet <template><div id"map" class"map"></div> </template><script> export default {data () {return {};},mounted(){this.initMaps()},methods: {initMaps () {const map L.map(map, {zoomControl…...

mybatisplus 字段存的是json 在查询的时候怎么映射成对象
数据库交互对象 TableName(value "表名", autoResultMap true)TableField(typeHandler JacksonTypeHandler.class, value "user_info")private User user;autoResultMap 是一个 MyBatis-Plus 中的注解属性,用于控制是否自动生成结果映射。…...

Python 学习笔记【1】
此笔记仅适用于有任一编程语言基础,且对面向对象有一定了解者观看 文章目录 数据类型字面量数字类型数据容器字符串列表元组 type()方法数据类型强转 注释单行注释多行注释 输出基本输出连续输出,中间用“,”分隔更复杂的输出格式 变量定义del方法 标识符…...