数据分析问答总结

一、SQL窗口函数

1.是什么

OLAP(Online Anallytical Processing联机分析处理),对数据库数据进行实时分析处理。

2.基本语法:

  • <窗口函数>OVER (PARTITION BY <用于分组的列名>

ORDER BY <用于排序的列名>)

注:

<窗口函数>都有哪些:

1.专用窗口函数:rank(相等的值排名相同,计数)、dense_rank(相等的值排名相同,不计数)、row_number(对相等的值不进行区分)、first_value(用于获取在分组内的第一个值)、last_value、lead(用于在查询结果集中访问当前行之后的行的数据)、lag(在查询结果集中访问当前行之前的行的数据)等

sql 复制代码
SELECT 
    order_id,
    customer_name,
    order_amount,
    order_amount - LAG(order_amount) OVER (ORDER BY order_id) AS previous_order_difference
FROM orders;

2.聚合窗口函数:count, sum, avg, max, min等,除count,其他聚合函数忽略NULL。

  • PARTITION BY:类似于聚合函数中的GROUP BY子句,但是在窗口函数中,要写成PARTITION BY
  • ORDER BY:和普通查询语句中的ORDER BY没什么不同

3. 窗口函数和聚合函数的区别

1.用OVER关键字区分窗口函数和聚合函数。

2.聚合函数每组只返回一个值,窗口函数每组可返回多个值。

4.注意事项

1.原则上只能写在SELECT子句中,因为窗口函数是对WHERE或者GROUP BY子句处理后的结果进行操作。over()里的分组以及排序的执行,晚于where、group by、order by的执行。

2.常见主流数据库目前都支持窗口函数。

3.partition子句原则上可省略,但这就失去了窗口函数的意义。

5.为什么要用

group by分组汇总后改变 了表的行数,一行只有一个类别。而partition by和rank函数不会减少原表中的行数。

窗口函数表示"范围"的意思,partition by分组后的结果。

二、A/B test

1. 原理

核心:假设检验。检验实验组和对照组的指标是否有显著性差异。

先做出假设,然后获取数据,最后根据数据来进行检验。

假设:

零假设:实验组 & 对照组:指标相同,无显著差异

备择假设:实验组 & 对照组: 指标不同,有显著差异

检验:根据指标的属性以及样本量的大小选择合适的检验方法。常用的检验方法有Z检验、t检验、卡方检验和F检验。

  • t检验:总体正态分布、总体方差未知或独立小样本平均数的显著性检验、平均数差异显著性检验。
  • Z检验:总体正态分布、总体方差已知或独立大样本平均数的显著性检验、平均数差异显著性检验。
  • 卡方检验:检验实验组是否服从理论分布(将对照组看成理论分布)。

2. 流程

1.确定实验目标

评价指标 和护栏指标

评价指标是驱动公司实现核心价值的指标,要具有可归因性、可测量性、敏感性和稳定性;

护栏指标也就是辅助指标。

评价指标重点关注一个目标,护栏指标可以选择多个作为辅助,避免达成一个目标造成别的利益的损失。

比如:要提升广告收入,我们在页面部分多插入一条或多条广告,虽然短期内是提高了收入,但是长期以来用户体验就会变差,造成用户反感继而流失。

2.设计实验:

  • 建立假设:建立零假设和备选假设,零假设一般是没有效果,备择假设是有效果。
  • 选取实验单位:有以下三种,常用用户粒度。

用户粒度:以一个用户的唯一标识来作为实验样本。好处是符合A/B实验的分桶单位唯一性,不会造成一个实验单位处于两个分桶,造成的数据不置信。

设备粒度:以一个设备标识为实验单位。相比用户粒度,如果一个用户有两个手机,那么也可能出现一个用户在两个分桶中的情况,所以会造成数据不置信。

行为粒度:以一次行为为实验单位,也就是用户某一次使用该功能,实验桶,下一次使用可能就被切换为基线桶,会造成大量的用户处于不同的分桶。不推荐。

  • 计算样本量:很重要

太小:实验结果不会可信

太大:影响面越大。负面影响,流量和资源的浪费。

  • 流量分配:分流(指直接将整体用户切割为几块,用户只能在一个实验中,不会相互影响。实验之间是互斥的)和分层(指将同一批用户,不停地随机后,处于不同的桶种。同一用户属于多个不同的实验,且相互之间不影响,企业中常用)
  • 计算试验周

三、归因分析

相关推荐
quantdash_cc1 小时前
如何验证历史行情的交易日期是否完整覆盖研究区间?
python·数据分析·pandas·量化交易·股票数据·quantdash
quantdash_cc7 小时前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
Leo.yuan11 小时前
2026年可信AI数据分析平台研究:主流厂商的可信机制、能力边界与企业选型
人工智能·数据挖掘·数据分析
Highcharts.js12 小时前
CSUN 2026|Highcharts无障碍数据与AI分享
javascript·人工智能·数据分析·highcharts·图表开发
梯度下降者1 天前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
benchmark_cc1 天前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
SelectDB1 天前
Doris Arrow Flight SQL 高速读取协议实战:与 Snowflake 客户端取数链路对照
大数据·数据库·数据分析
Asa121382 天前
Nature Ecology & Evolution|深层土壤病毒如何连接微生物残体形成与碳稳定化
数据分析
SelectDB2 天前
实时更新排错现场:导入了却查到旧数据,和 FINAL 越加越慢的两条路
大数据·数据库·数据分析
SelectDB2 天前
拿 Planet 的账单一行行对下来,我总结出三个可自查的校验点
大数据·数据库·数据分析