先讲核心结论:SQL负责找准,分析负责解释,工具负责让结论被使用
电商分析的价值不在于查询语句有多长,而在于每一次提取都能连接一个经营决策。
我会怎样回答“本周销售为什么变化”
我不会先打开一个大宽表,然后凭感觉挑几个字段。更可靠的顺序是先锁定比较范围,例如本周与上周、今年同期与去年同期,确认时区、订单状态、退款归属日和渠道边界,再将销售额拆为流量、转化和客单价三个主因。
如果销售额变化来自支付买家减少,我继续向前看有效访客和商品详情页访问;如果访客没有下降,则重点检查加购率、支付转化率、优惠券使用、库存和配送承诺。如果支付买家稳定而销售额下降,我会检查件单价、商品结构、折扣深度和退款金额。这个顺序比“销售额下降所以要加投放”更加接近事实。
四个必须同时看的经营信号
- 规模:GMV、支付订单数、支付买家数,回答“卖了多少”。
- 效率:转化率、客单价、投产比,回答“卖得是否有效”。
- 质量:退款率、取消率、差评率和履约时效,回答“销售是否健康”。
- 持续性:复购率、会员贡献和库存周转,回答“下个月是否还能继续”。
四类信号需要放在同一个分析框架中。只看GMV,容易把高退款、高折扣、低毛利的增长误判为好增长。
背景与真实场景:为什么电商团队需要SQL与可视化协同
下面的场景是抽象化的示例,用于复现日常工作中的数据问题,不对应任何具体企业。
场景一:活动结束后,GMV涨了但利润没有涨
某品牌在大促期间获得了更高的支付订单数,管理者希望判断活动是否成功。运营导出的表里有订单金额,投放同学有点击成本,商品同学有采购成本,客服还有退款和补发记录。单看订单表,只能看到收入,无法判断折扣、广告、履约和退款后的真实贡献。
我的第一步是建立订单粒度与订单行粒度的区别:订单粒度适合统计订单数和买家数,订单行粒度适合统计商品数量、类目销售和成本。随后把优惠分摊、运费、广告消耗、退款和成本映射到统一的分析日与渠道。只有这样,才可以把“增长”改写成“收入增加了多少、贡献利润增加了多少、哪些商品和渠道拉低了结果”。
场景二:流量没有明显变化,支付转化却突然下降
这类问题通常不靠一个总转化率解决。我们需要按设备、渠道、页面、商品、地区、新老客和时间段拆分,观察下降集中在哪里。例如移动端详情页的加购率正常,但支付率下降,可能是库存、优惠券、地址校验、支付接口或配送承诺发生问题。
这里SQL的作用不只是筛选数据,更是把用户行为按会话或用户标识串起来,形成曝光到支付的事件顺序。可视化则帮助团队快速看到漏斗在哪一层变窄,并进一步点击到设备、渠道或商品明细。最终的结论应当能指向负责人,而不是停留在“转化率下降了2个百分点”。
场景三:商品很多,资源该投给谁
SKU数量一多,平均销售额会掩盖结构差异。高销量商品可能毛利很低,高毛利商品可能因为曝光不足没有形成规模,长尾商品还可能占用库存和运营精力。
我会同时看销售贡献、毛利贡献、库存周转、退款率和近30天趋势,将商品划分为增长、守成、优化和退出四类,而不是仅按GMV排序。
场景四:复购率下降,应该发券还是改善商品
复购是一个时间窗口指标。必须先区分首购用户、沉默用户、回流用户和高频用户,再确定观察期与回访期。若首购用户在收货后的满意度下降,发券可能只会增加补贴,而无法修复体验。
我会把复购分析和退款、评价、客服工单、品类购买组合关联,寻找复购下降的结构性原因。
场景五:多个团队各自有一套数字
当财务、运营、投放和商品使用不同的订单状态或日期字段时,同一天出现三个GMV并不罕见。解决方案不是要求大家“以后认真一点”,而是维护指标字典、统一主题模型,并让看板展示计算口径和更新时间。
E数通这类数据分析工具适合将SQL结果、可视化图表与指标说明放到同一工作空间,降低跨团队沟通成本。
SQL分析底座:从一条查询到可复用的数据产品
写SQL之前先想清楚粒度、主键、时间和状态;这四件事决定了结果是否可信。
第一层:明确分析粒度
“一行数据代表什么”是电商SQL中最容易被忽略的问题。订单表的一行可能是一张订单,订单明细表的一行可能是一个SKU,行为表的一行可能是一次曝光或一次点击。若不先明确粒度,JOIN之后就会出现笛卡尔放大,导致金额、订单数和用户数同时失真。
- 订单粒度:订单号唯一,适合订单数、支付时间和订单状态。
- 订单行粒度:订单号加商品编码唯一,适合商品数量和商品销售额。
- 用户日粒度:用户加日期唯一,适合活跃、复购和留存。
- 行为事件粒度:用户、会话、时间和事件类型组合,适合漏斗。
第二层:搭建订单指标查询
下面是一段教学示例SQL。表名、字段名与状态值仅用于演示,真实项目需要按照实际数据字典调整。示例首先过滤有效支付订单,再按天汇总金额和买家,避免把取消与全额退款订单混进成交口径。
WITH valid_orders AS ( SELECT order_id, user_id, paid_at, paid_amount FROM fact_order WHERE order_status IN ('PAID', 'COMPLETED') AND is_test_order = 0 AND paid_at >= '2024-01-01' ) SELECT CAST(paid_at AS DATE) AS stat_date, COUNT(DISTINCT order_id) AS paid_orders, COUNT(DISTINCT user_id) AS buyers, SUM(paid_amount) AS gmv, SUM(paid_amount) / NULLIF(COUNT(DISTINCT order_id), 0) AS aov FROM valid_orders GROUP BY CAST(paid_at AS DATE);
注意:客单价的分母是订单数还是买家数,要根据指标定义决定。若一个买家一天有多笔订单,二者并不相同。
第三层:统一时间口径
销售日报可以按支付时间,退款日报可以按退款成功时间,库存日报可以按日终快照,不能把所有事实都粗暴地按创建时间关联。跨表分析时,我会在指标字典里明确“统计日字段”和时区。
同时要说明自然日、周、月的边界,以及活动跨午夜时是否按活动批次归属。时间口径不清,趋势图再漂亮也无法比较。
第四层:处理NULL、重复和异常
NULL不是0,缺失渠道也不等于自然流量;空商品成本也不等于零毛利。查询中需要明确COALESCE、NULLIF和去重规则,并把异常记录单独列出。
我通常会保留“原始值、清洗值、异常原因”三个字段,让结果可以追溯,而不是静默地把问题隐藏掉。
第五层:让结果能够被复用
一次性分析可以用临时SQL,但周报、日报和管理看板应沉淀为主题数据集。字段命名、注释、刷新频率、负责人和校验规则都应写清楚。
在E数通中,可以将数据集、指标卡、交叉表和趋势图组织到一个分析页面,方便业务人员按权限查看和继续分析。
常见误区:很多“数据问题”其实是定义与连接问题
我会先排查计算逻辑,再讨论业务原因;这是避免错误决策成本最低的一步。
| 误区 | 为什么会错 | 建议的检查方式 | 可能造成的判断 |
|---|---|---|---|
| 直接SUM订单金额 | 订单明细JOIN商品或优惠表后,一张订单可能被展开成多行。 | 分别核对订单粒度和订单行粒度;用订单号去重后比对总额。 | GMV虚高,误以为活动带来强劲增长。 |
| 把浏览用户当访客 | 一次访问可能有多个事件,用户数、会话数和页面浏览量不是同一概念。 | 明确UV、Session和PV的定义,并检查统计窗口。 | 转化率分母不一致,渠道之间无法公平比较。 |
| 用创建时间统计销售 | 订单创建后可能取消,支付时间才更接近成交口径。 | 同时展示创建、支付、发货和退款时间,按业务目的选择。 | 日报出现未来收入或跨日重复。 |
| 只看平均值 | 平均客单价会掩盖高低价商品、不同渠道与新老客的结构差异。 | 增加中位数、分位数、分层均值和结构占比。 | 把少数高价值用户的表现误认为全体用户表现。 |
| 看到相关就当因果 | 促销、投放、季节、库存和竞品动作可能同时影响指标。 | 对比同期、控制分组,必要时设计A/B测试或准实验。 | 把时间上的同时发生误认为某个动作带来的结果。 |
| 忽略退款与售后 | 支付GMV是收入过程,不一定等于最终净销售或贡献利润。 | 建立支付、发货、签收、退款和净收入的指标链。 | 短期冲高销售,长期却损失利润与用户信任。 |
一个实用的三次核对法
- 数量核对:订单数、用户数、商品行数是否与业务系统抽样一致。
- 金额核对:支付金额、优惠金额、退款金额和净额是否满足基本的加减关系。
- 时间核对:最早、最晚日期、跨天订单和时区转换是否符合预期。
如果三次核对没有通过,我不会继续做趋势解读。先修复数据底座,往往比制作更多图表更有价值。
指标字典至少需要写什么
每个指标至少应有名称、业务含义、计算公式、分子分母、数据范围、时间字段、过滤状态、更新频率、负责人和示例。比如“支付转化率”要说明是支付买家数除以有效访客数,还是支付订单数除以会话数。
我还会记录版本变更。若平台在某天调整了退款归属规则,历史数据是否回刷、图表是否可比,都需要在字典中留下记录。
专业判断逻辑:从结果指标反推可行动原因
好的分析不是把所有维度都切一遍,而是根据假设选择最有信息量的切分。
销售额 = 流量 × 转化率 × 客单价:这是起点,不是结论
在一个相对稳定的订单口径下,销售额可以拆成有效访客数、支付转化率和平均订单金额。这个恒等关系帮助我迅速确定问题在哪一层,但它没有直接告诉我为什么变化。因此,我会继续将每个环节拆成业务可干预的因素。
| 结果变化 | 优先验证的指标 | 需要继续追问的问题 | 可能的动作方向 |
|---|---|---|---|
| 访客下降 | 渠道曝光、点击率、自然搜索、投放成本 | 下降是否集中在某个平台、设备或素材?流量质量有没有变化? | 优化素材和落地页,调整渠道预算,检查追踪参数。 |
| 加购下降 | 详情页到加购、价格、评价、库存、页面加载 | 是全品类下降,还是少数主推商品下降?是否发生价格或库存变化? | 优化商品信息,改善价格解释,补充库存或替换主推SKU。 |
| 支付下降 | 结算页转化、优惠券、运费、支付失败、配送承诺 | 是否集中在某个支付方式、地区、设备或时段? | 排查链路故障,优化优惠规则,明确运费和交付预期。 |
| 客单价下降 | 件单价、件数、商品结构、折扣、组合购买 | 是高价商品卖少了,还是用户购买件数变少了?折扣是否过深? | 设计搭配购、加价购和分层优惠,保护高毛利商品曝光。 |
| 净收入下降 | 退款率、取消率、补发成本、履约成本、毛利 | 支付增长是否伴随售后恶化?问题集中在哪些SKU和地区? | 改善质量与履约,调整商品描述,重新评估促销门槛。 |
判断优先级:影响 × 可控 × 可信
我通常给每个发现打三个分。影响表示它对核心结果的贡献大小;可控表示团队能否在当前周期改变它;可信表示数据质量和样本量是否足够。一个影响很大但数据不可信的异常,应该先验证;一个可信且可控但影响很小的优化,不应抢占核心资源。
进度条为分析流程示例,不是任何真实项目评分。
每次分析都可以按照这五个问题展开
发生了什么
先描述事实:哪项指标、在哪个时间、相对哪个基准变化了多少。
变化在哪里
按渠道、设备、用户、品类、地区和时间切分,找出贡献最大的结构。
为什么发生
结合业务事件和过程指标验证假设,不用单一相关关系替代因果解释。
要做什么
提出可执行动作,写清负责人、预期影响、资源和完成时间。
如何复盘
预先约定成功指标和观察窗口,行动后回看结果,沉淀为可复用规则。
示例案例:用E数通把一次活动分析做成可追踪的经营闭环
以下案例中的品牌、时间和数值全部为模拟数据,重点是展示思考与实现路径。
案例背景
假设一家经营家居用品的电商品牌,在某月进行为期7天的会员活动。团队使用订单、广告、行为、商品和售后数据,希望回答三个问题:活动带来了多少增量?增长来自哪个环节?是否值得在下个周期复制?
我将E数通作为分析与看板承载工具,把SQL整理后的主题数据集连接到指标卡、趋势图、漏斗图和商品明细表。业务人员不需要每次从原始库重新拼接字段,也可以沿着图表继续下钻。
示例数据口径
| 数据集 | 一行代表 | 关键字段 | 用途 |
|---|---|---|---|
| 订单主题 | 一笔支付订单 | 订单号、买家、支付时间、实付金额、渠道 | GMV、订单、买家、客单价 |
| 行为主题 | 一次用户事件 | 用户、会话、设备、事件、商品、时间 | 曝光、点击、详情、加购、支付漏斗 |
| 商品主题 | 一个SKU在一个统计日 | 类目、售价、成本、库存、销量、退款 | 毛利、结构、库存和商品分层 |
| 售后主题 | 一条退款或售后记录 | 订单、原因、申请时间、完成时间、退款额 | 退款率、原因分布和净收入 |
活动漏斗:问题集中在支付环节
模拟口径:同一活动周期内去重用户数。图表显示详情到加购尚可,但加购到支付的损失较大,下一步应检查优惠券、运费、库存和支付链路。
从漏斗读出的第一判断
如果曝光到详情的比例正常,说明流量和素材不一定是第一嫌疑;如果详情到加购也正常,而支付环节明显收窄,投放加预算可能放大问题。此时更合理的顺序是先按设备、渠道、地区和商品检查结算链路,再决定是否扩大流量。
在E数通中,我会把漏斗图与筛选器、明细表放在同一页面:点击“支付下降”的环节后,查看对应的设备、渠道和SKU,而不是将结论复制到多个静态PPT中。
七日趋势:GMV上升不等于全程健康
模拟数据单位为万元。净收入按支付金额扣除退款示意,具体公式需按企业财务口径确认。
渠道对比:同时看销售和投产效率
示例中“短视频”带来较高销售额,但投产比并非最高;渠道预算不宜只按GMV排序。
商品观察:从总量转向结构
假设活动期间收纳用品销售额增长,但退款也明显增加。我会进一步查看SKU层面的售价、成本、发货时效、退款原因和评价关键词。若增长主要来自低毛利套装,且售后原因集中在尺寸预期不符,那么促销规则与详情页表达需要一起调整。
商品分层可以采用“销售贡献 × 毛利贡献 × 库存风险”的组合:高销售高毛利商品适合重点保护;高销售低毛利商品需要优化成本或组合;低销售高毛利商品需要测试流量和内容;低销售低毛利且库存积压的商品要评估清仓。
用户观察:用队列而不是平均复购率
活动期间新增用户很多时,整体复购率短期可能下降,因为新用户还没有完成第二次购买。更合理的方式是按首购月份或首购活动建立用户队列,在相同观察窗口内比较第7天、第30天和第60天复购。
如果会员用户的支付频次提高,但退款率和优惠依赖也提高,就不能只宣布会员活动成功。需要看新增贡献利润、后续留存和用户质量,判断优惠究竟是在创造长期关系,还是提前透支购买。
把分析交付给团队:日报、专题和预警应当各有职责
不是所有问题都需要同一张看板;不同决策频率需要不同的信息密度。
经营监控
关注GMV、订单、支付买家、转化率、退款和库存等少数核心指标。日报重点是发现偏离,不负责解释所有原因;异常应带出对比基准、阈值和负责人。
问题诊断
按渠道、设备、商品、用户和地区拆解变化,结合营销活动、价格调整和履约事件,形成一页纸结论。SQL查询和明细表要可追溯,避免周周重复手工拼表。
经营复盘
看结构、利润、用户生命周期、商品组合和库存周转。月度复盘需要将短期结果与中长期目标连接,回答预算、商品和组织资源是否需要调整。
实验评估
为一次活动、落地页或推荐策略设置实验组和对照组,预先确定主指标、护栏指标、样本量和观察期。实验结束后同时报告增量、置信程度和潜在副作用。
适合用SQL的情况
- 需要跨订单、行为、商品和售后表关联。
- 需要复杂去重、窗口函数、队列或自定义状态。
- 需要将规则沉淀为稳定的数据集。
SQL强在精确、可重复和可审计,但需要良好的数据结构与权限管理。
适合用E数通的情况
- 需要把SQL结果快速转成图表和看板。
- 需要业务人员自助筛选、下钻和查看明细。
- 需要统一分享口径,减少重复导表。
工具不能替代指标定义,但可以缩短从数据到共识的路径。
适合保留人工判断的情况
- 商品内容、客服反馈和竞品变化需要语境。
- 数据异常需要结合系统发布和业务事件确认。
- 预算取舍涉及风险偏好与战略优先级。
自动化应承担重复计算,把人的时间留给判断、沟通和实验设计。
不同情况下怎么行动:选择方案,也要看清取舍
分析建议不应只有“应该做什么”,还应说明什么时候不该做、代价是什么。
| 情况 | 优先动作 | 暂缓动作 | 主要取舍 |
|---|---|---|---|
| 流量下降且转化稳定 | 检查渠道曝光、自然搜索和内容供给,按增量成本重新分配预算。 | 直接改商品详情页或大幅降价。 | 扩大流量可能带来规模,但也会引入低质量用户和更高获客成本。 |
| 流量稳定但支付转化下降 | 排查结算、库存、优惠券、运费和支付失败,优先修复高影响故障。 | 立刻提高投放预算。 | 修链路见效可能较慢,但比购买更多无效流量更稳健。 |
| GMV增长但毛利下降 | 拆解折扣、广告、成本和售后,按SKU与渠道计算贡献利润。 | 用更深折扣继续冲量。 | 牺牲短期规模换利润,可能影响排名和市场份额;需要结合战略目标。 |
| 退款率集中在少数商品 | 检查详情页承诺、质量批次、尺码和配送,建立商品级预警。 | 只对全店发券挽回用户。 | 修复商品会带来供应链成本,但能减少长期售后和评价损失。 |
| 数据口径经常争议 | 先建立指标字典和验证样例,指定指标负责人,统一看板来源。 | 继续制作更多临时报表。 | 前期需要投入治理时间,但能减少后续重复沟通和错误决策。 |
| 团队缺少SQL能力 | 从固定业务问题出发,沉淀模板、数据集和可视化组件,再逐步开放自助分析。 | 一开始就要求所有人写复杂SQL。 | 封装能提升效率,但过度封装会降低灵活性,需要保留明细和下钻能力。 |
我建议采用的落地顺序
- 先选一个高频问题:例如“为什么支付转化下降”,不要一开始建设包含所有指标的超级看板。
- 定义最小可用口径:明确时间、状态、粒度、分母和异常处理,保留一份可复核样例。
- 建立一张主题数据集:让订单、行为和商品维度能以稳定主键关联,必要时通过中间层去重。
- 设计一页结论型看板:顶部结果、中部拆解、底部明细与行动,不堆放与问题无关的图表。
- 设置复盘机制:记录提出的假设、采取的动作、观察窗口和实际结果,把有效方法纳入日常流程。
什么情况下不适合马上上复杂平台
如果数据源没有稳定主键、订单状态含义不清、业务团队尚未确定指标口径,那么先做数据治理和小范围验证更合适。平台可以提高连接、分析和协同效率,却无法自动解决源头数据缺失。
我的建议是从一个部门、一个场景和一组核心指标开始,验证数据刷新、权限、使用频率和行动闭环,再逐步扩展到更多团队。
热门问答:电商数据分析与SQL的实用疑问
每个问题都从常见工作困惑出发,并给出可直接执行的判断路径。
电商数据分析一定要会SQL吗?零基础应该从哪里开始?
我经常看到团队成员担心自己不会SQL,就只能依赖别人导出的Excel。我的理解是,SQL不是电商分析的全部,但它能让我直接表达筛选、分组、关联、去重和时间窗口,减少反复等待。零基础可以先从SELECT、WHERE、GROUP BY、JOIN和CASE开始,围绕订单日报练习,再学习窗口函数与CTE;同时把每次查询的粒度、时间字段和过滤条件写在旁边,先保证结果可信,再追求语句简洁。
如何用SQL计算电商GMV,才能避免重复统计和口径争议?
我最担心的是把订单表和订单明细表直接连接后,将订单金额重复累加。比较稳妥的做法是先定义GMV是否包含取消、退款、运费和优惠,再确认订单粒度;订单级金额在订单粒度汇总,商品级金额在订单行粒度汇总,最后通过订单号去重和抽样核对。还要明确使用创建时间、支付时间还是完成时间,并将测试单、内部单和异常订单排除规则写入指标字典。
电商转化率应该怎么算?为什么不同报表中的转化率不一样?
我会先问清楚分子和分母分别是什么:支付订单数除以会话数、支付买家数除以访客数,或者详情页购买用户除以详情页访问用户,都是不同指标。统计窗口、去重方式、渠道归因、机器人流量、跨设备行为和订单状态也会造成差异。建议将指标命名写完整,例如“活动周期去重访客到支付买家转化率”,并在图表旁展示分子、分母和更新时间,避免只写一个模糊的“转化率”。
为什么GMV增长了,利润和用户体验却可能变差?
我不会把GMV直接当作经营质量。深度折扣会压低实收,广告费用会抬高获客成本,低价商品可能带来更高的履约压力,质量或描述问题还会在之后形成退款、补发和差评。分析时应把支付金额拆成优惠、成本、投放、履约和售后,观察贡献利润、退款率、复购率和评价变化。若使用E数通做看板,我会把这些指标放在同一主题页面,用净收入或贡献利润辅助判断活动是否值得复制。
什么时候应该用SQL,什么时候使用E数通等可视化工具?
我会把SQL看作数据准备和逻辑表达工具,把E数通看作分析协同与结果呈现工具。复杂去重、跨表关联、队列分析和稳定指标模型适合通过SQL或数据集完成;趋势、漏斗、交叉分析、筛选下钻和团队共享则适合放在可视化工作空间。两者不是二选一。先用SQL保证底层逻辑,再让业务人员在E数通中自助查看和追问,通常比每次人工导出更高效。
电商商品分析只看销量和销售额够不够?
我认为不够,因为销量高的商品可能毛利低、退款高或严重占用库存。至少还应加入毛利贡献、折扣率、库存周转、缺货率、退款率、履约时效和趋势变化,并按商品生命周期进行比较。一个高销售高毛利但库存不足的SKU,策略可能是补货和保护价格;一个高销售低毛利的SKU,策略可能是优化成本和搭配销售;一个低销售高库存风险的SKU,则需要评估清仓,而不是继续投入同样的流量。
如何判断一次促销活动是否成功,避免只看活动当天的峰值?
我会同时看活动期间的增量、活动后的回落、用户质量和利润。分析前先确定对照基准,例如历史同期、相似活动或实验对照组,再比较支付买家、净收入、贡献利润、退款率、复购和新客成本。活动当天的峰值可能来自提前透支需求,因此至少设置活动后7天或30天的观察窗口。对于会员活动,还要按首购队列看后续复购,而不是用全站平均复购率替代用户生命周期判断。
企业没有完善的数据仓库,能不能先开展电商数据分析?
我不会因为数据仓库不完整就完全停止分析,但会控制范围并明确示例性质。可以先选择订单、商品和行为中最稳定的字段,建立小型主题数据集,记录缺失、延迟和状态映射,再用一个高频问题验证结果。E数通可以帮助团队把可用数据连接成指标卡和看板,但重要结论要注明数据覆盖范围和限制。随着使用频率增加,再补充数据质量监控、权限、历史回刷和统一指标治理。
把数据分析从“查数”升级为“持续做出更好决策”
我对电商数据分析的核心判断可以归纳为五点:
- 先定义问题、粒度、时间和状态,SQL才有明确边界。
- 不要只看GMV,必须同时观察转化、客单、毛利、退款和复购。
- 用漏斗、趋势、结构和明细彼此验证,不要用一张图替代完整判断。
- 将订单、行为、商品和售后数据组织成可复用主题,减少重复导表和口径分裂。
- 分析最终要落到负责人、动作、阈值和复盘时间,E数通等工具的价值在于让这条链路更容易协同和持续。
我建议今天就做的三件事
第一,选一个近期反复被问的问题,例如“支付转化为什么下降”;第二,为它写出指标字典和最小SQL查询,完成数量、金额、时间三次核对;第三,在E数通中搭建一页结论型分析,把结果、拆解、明细和行动建议放在同一个页面。先让一个问题闭环,再扩展到更多指标和部门。










