dex0423 的博客

记录工作学习的点点滴滴。

SQL:使用 JOIN 表自身实现表内统计

统计用户第一次消费后30天内的购买数量

需求 给定用户 ID,统计用户第一次消费后30天内的总购买数量; 创建表 创建日历表 user_sales create table user_sales( user_id integer not null primary key, sell_day date not null unique, amount integer not null...

SQL:使用 INTERVAL + DENSE_RANK OVER 实现用户留存分析

统计用户注册后 1、3、7、30 日留存率

需求 给定用户注册登录时间,统计用户注册后 1、3、7、30 日留存率; 创建表 创建用户表 DROP TABLE t_user; CREATE TABLE t_user( id INT AUTO_INCREMENT PRIMARY KEY, user_name VARCHAR(50) NOT NULL, register_time DATET...

SQL:使用 CROSS JOIN 实现多表查询

统计员工的出勤情况

创建表 需求: 需要根据 employee、attendance、calendar 三张表,统计员工的出勤情况; 创建日历表 calendar CREATE TABLE calendar( id INTEGER NOT NULL PRIMARY KEY, -- 日历编号 calendar_da...

SQL:使用 CASE 和 GROUP BY 实现数据透视

统计不同产品、不同渠道销售情况

创建表 需求: 需要根据 employee、attendance、calendar 三张表,统计员工的出勤情况; 创建销售数据表sales_data ``` – saledate表示销售日期,product表示产品名称,channel表示销售渠道,amount表示销售金额 CREATE TABLE s...

SQL:WITH RECURSIVE 递归查询使用方法

生成模拟销售数据

WITH RECURSIVE 用法 WITH xxxx AS () 是对一个查询子句做别名,同时数据库会对该子句生成临时表; WITH RECURSIVE 则是一个递归的查询子句,他会把查询出来的结果再次代入到查询子句中继续查询; 如下面的语句: WITH RECURSIVE number(n, fact) AS ( -- 递归开始的第一条记录,只要这个这条语...

SQL:SQL 窗口函数 & 聚合函数

RANK & DENSE RANK & PRECEDING & UNBOUNDED & LAG & LEAD & GROUP_CONCAT

1. 窗口函数 窗口函数,也叫 OLAP 函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理。 基本语法 <窗口函数> over (partition by <用于分组的列名> order by <用于排序的列名>) ...

SQL:SQL 执行顺序及常用函数

SELECT 语句执行顺序 SELECT DISTINCT 数据除重 FROM # 选取表,将多个表数据通过笛卡尔积变成一个表。 ON # 对笛卡尔积的虚表进行筛选 JOIN <...

SQL:SQL 优化经验总结

SQL 优化经验 在表中建立索引,优先考虑 where、group by 使用到的字段。 尽量避免使用 select *,返回无用的字段会降低查询效率。 优化方式: 使用具体的字段代替 *,只返回使用到的字段。 尽量避免使用 in 和 not in,会导致数据库引擎放弃索引进行全表扫描。 如下: SELECT...

用户运营:用户流失预警

1. 用户流失预警 1.1. 用户生命周期 在用户生命周期中,用户进入成熟期之后,并不代表就运营人员可以高枕无忧,这一阶段的用户随时会滑向休眠阶段; 一旦用户进入休眠阶段、则用户随时流失,必须要尽快识别出休眠用户,并针对性调整精细化运营策略、唤醒用户,才能阻止用户流失; 新用户获取的成本高昂,用户流失后的召回成本也不低,而且效果很不理想; 相比而言,维系老用户的边际成本...

用户运营:常见的用户行为分析模型

1. 行为事件分析 行为事件分析: 行为事件分析法主要用于研究某行为事件的发生对产品的影响及影响程度,一般来说,事件通过埋点来获取。 对于一具体的行为,首先要对其进行定义,将人物(Who)、时间(When)、地点(Where)、交互(How)、交互内容(What)进行聚合,构成一个完整的用户行为事件。 Who:事件的参与主体,如用户id,...