数据分析·作者 数据分析师·发布 2026-03-05·更新 2026-04-17
电商数据分析 SQL 速查:20 个高频查询模板(GMV、复购、漏斗)
不需要成为 DBA,电商运营掌握 20 个 SQL 模板就能自助分析 90% 的问题。本文按「销售、商品、用户、投放、漏斗」五类给出模板,并附变量说明与常见优化建议。
下面是 20 个可直接套用的 SQL 模板。字段名请按你的表结构替换。
第一节:销售类(5 个)
1. 日 GMV 趋势
SELECT DATE(order_time) AS d, SUM(paid_amount) AS gmv
FROM orders
WHERE order_time >= '2026-01-01'
GROUP BY d
ORDER BY d;
2. 商品 GMV 排名
SELECT sku_id, SUM(paid_amount) AS gmv, COUNT(*) AS orders
FROM order_items
GROUP BY sku_id
ORDER BY gmv DESC
LIMIT 20;
3. 客单价
SELECT SUM(paid_amount) / COUNT(DISTINCT order_id) AS aov
FROM orders
WHERE DATE(order_time) BETWEEN '2026-03-01' AND '2026-03-31';
4. 月环比 GMV
SELECT DATE_FORMAT(order_time, '%Y-%m') AS m, SUM(paid_amount) AS gmv
FROM orders
GROUP BY m
ORDER BY m;
5. 退款后净 GMV
SELECT SUM(paid_amount) - COALESCE(SUM(refund_amount), 0) AS net_gmv
FROM orders LEFT JOIN refunds USING(order_id)
WHERE DATE(order_time) = '2026-04-10';
第二节:商品类(4 个)
6. 上新爬坡
SELECT DATE(order_time) AS d, SUM(paid_amount) AS gmv
FROM order_items
WHERE sku_id = 'SKU001'
GROUP BY d;
7. 高退货 SKU
SELECT sku_id, SUM(CASE WHEN is_refund=1 THEN 1 ELSE 0 END) / COUNT(*) AS refund_rate
FROM order_items
GROUP BY sku_id
HAVING refund_rate > 0.2
ORDER BY refund_rate DESC;
8. 商品连带率
SELECT order_id, COUNT(DISTINCT sku_id) AS sku_count
FROM order_items
GROUP BY order_id
HAVING sku_count > 1;
9. 断货 SKU
SELECT sku_id, stock
FROM inventory
WHERE stock < safety_stock;
第三节:用户类(5 个)
10. 新老客分布
SELECT
SUM(CASE WHEN is_new=1 THEN 1 ELSE 0 END) AS new_users,
SUM(CASE WHEN is_new=0 THEN 1 ELSE 0 END) AS old_users
FROM orders
WHERE DATE(order_time) = CURDATE();
11. 30 日复购率
SELECT COUNT(DISTINCT CASE WHEN repurchase_cnt >= 2 THEN user_id END) * 1.0 / COUNT(DISTINCT user_id) AS repurchase_rate
FROM (
SELECT user_id, COUNT(*) AS repurchase_cnt
FROM orders
WHERE order_time >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY user_id
) t;
12. RFM 分层(简化)
SELECT user_id,
DATEDIFF(CURDATE(), MAX(order_time)) AS recency,
COUNT(*) AS frequency,
SUM(paid_amount) AS monetary
FROM orders
GROUP BY user_id;
13. 高价值客户
SELECT user_id, SUM(paid_amount) AS total
FROM orders
GROUP BY user_id
ORDER BY total DESC
LIMIT 100;
14. 流失用户
SELECT user_id
FROM orders
GROUP BY user_id
HAVING MAX(order_time) < DATE_SUB(CURDATE(), INTERVAL 90 DAY);
第四节:投放类(3 个)
15. 渠道 ROI
SELECT channel, SUM(revenue) / SUM(cost) AS roi
FROM ad_stats
GROUP BY channel;
16. 素材表现
SELECT creative_id, SUM(click) / SUM(impression) AS ctr, SUM(convert) / SUM(click) AS cvr
FROM ad_creative_stats
GROUP BY creative_id
ORDER BY ctr DESC;
17. 关键词转化
SELECT keyword, SUM(click) AS clicks, SUM(order_cnt) AS orders
FROM search_ads_stats
GROUP BY keyword
ORDER BY orders DESC;
第五节:漏斗类(3 个)
18. 商品页漏斗
SELECT
COUNT(DISTINCT CASE WHEN event='view' THEN user_id END) AS viewers,
COUNT(DISTINCT CASE WHEN event='cart' THEN user_id END) AS cart_users,
COUNT(DISTINCT CASE WHEN event='order' THEN user_id END) AS buyers
FROM events
WHERE DATE(event_time) = CURDATE();
19. 直播间漏斗
SELECT
MAX(CASE WHEN metric='watch' THEN value END) AS watch,
MAX(CASE WHEN metric='interact' THEN value END) AS interact,
MAX(CASE WHEN metric='click_product' THEN value END) AS clicks,
MAX(CASE WHEN metric='order' THEN value END) AS orders
FROM live_stats
WHERE live_id = 123;
20. 搜索转化漏斗
SELECT
SUM(search_cnt) AS searches,
SUM(click_cnt) AS clicks,
SUM(add_cart_cnt) AS add_carts,
SUM(order_cnt) AS orders
FROM search_funnel
WHERE DATE(d) BETWEEN '2026-03-01' AND '2026-03-31';
第六节:优化建议
- 用
LIMIT先看一部分,不要直接全表; - 时间范围必加
WHERE; - 大表 JOIN 用索引字段;
- 复杂查询拆分成 CTE;
- 结果落盘到临时表便于二次分析。
第七节:常见误区
- 不加时间范围,把集群打挂;
- JOIN 条件错,结果翻倍;
- 口径与 BI 不一致;
- 查询跑慢不优化,团队都在等。
掌握这 20 个模板,配合 Excel 或 BI,可以让运营从「求人要数据」变成「自己动手分析」。
TEMPLATE / SQL 速查 / 取数模板
模板使用步骤
含漏斗、留存、RFM、ABC、复购周期、客单价波动、渠道贡献等的现成 SQL 语句。
- 1把 SQL 粘贴到你熟悉的 DBeaver / DataGrip;
- 2替换 schema 前缀(默认 ods_)与日期范围变量;
- 3先跑「GMV 按日趋势」语句确认口径一致;
- 4保存到自己的 Query 库并按命名前缀归档。
适合谁:数据分析师日常取数 数仓自助式看板建模 大促复盘数据核对
更多同类模板请查看模板中心 →
常见问题
以下为可见 FAQ,与 FAQPage 结构化数据一致。
- SQL 一定要学吗?
- 不学就永远依赖数据同学。运营掌握基础 SQL(SELECT / WHERE / GROUP BY / JOIN)能自助完成 80% 的分析,效率提升明显。
- 哪种 SQL 方言?
- MySQL / Hive / Presto / BigQuery 等,语法大同小异。本文模板尽量使用通用写法。
- SQL 慢怎么办?
- 多数慢查询可通过「限时间范围、加索引、减字段、分步查询」解决。
- 直接写 SQL 还是用 BI 工具?
- 两者结合。标准报表走 BI,特殊分析写 SQL。
- 中小团队可以没有数仓吗?
- 可以。数据量小时直接在平台后台或电商 API 导出 Excel 也能跑。数仓是规模化后的必然选择。
标签
本文属于以下专题
进入专题可以看到同主题下的全部相关文章、代表作者与常见问题解答。
相关文章 / 猜你喜欢
同栏目 +1、共享标签 +2;真实相关不足时,用同栏目最新 / 全站最新补位并标注来源。
数据分析·5 分钟阅读·2026-04-19
电商低代码工作流自动化:10 个高 ROI 自动化场景(附工具)
运营团队 80% 的时间花在「搬数据 / 填表 / 通知」等重复工作。本文给出 10 个电商场景的低代码工作流方案,用飞书多维表格、Zapier、Make、钉钉宜搭等工具,让人力从事务中解放。
同栏目《数据分析》
数据分析·5 分钟阅读·2026-04-19
2026 电商 AI 自动化工具全景:从写文案到客服的 10 大场景
AI 已经从「新奇」进入「生产力」。本文盘点 2026 年电商行业可用的 AI 自动化工具,覆盖 10 个场景(文案、素材、客服、选品、定价、库存、物流、评价、财务、舆情),每个给出 2-3 个代表工具与成本评估。
同栏目《数据分析》
数据分析·4 分钟阅读·2026-04-19
电商数据 ETL 管道搭建:从平台 API 到数仓的 6 层架构
多平台运营第一件事就是把数据打通——天猫、抖音、京东、自研 CRM 数据怎么汇到一个数仓?本文给出 6 层 ETL 架构(接入、清洗、集成、维度建模、指标层、应用层),配合工具选型与落地 Roadmap。
同栏目《数据分析》
数据分析·5 分钟阅读·2026-04-04
电商 RFM 会员分层模型:把用户分成 8 组、ROI 翻 3 倍的实战手册
所有用户一视同仁投流和发券 = 浪费钱。RFM 模型是把 10 万用户分成 8 组、对每组设计不同运营动作的数据工程。本文给出 RFM 的完整计算方法、分层矩阵、每组对应动作、工具清单,让老客复购率提升 40%+ 的落地方案。
同栏目《数据分析》
数据分析·1 分钟阅读·2026-04-08
电商数据看板搭建指南:日报、周报、月报的 18 个核心指标
手把手教你搭建电商店铺数据看板:数据源打通、指标口径、报表结构、异常阈值,附 18 个必看指标的定义与 BI 工具推荐。
同栏目《数据分析》
数据分析·2 分钟阅读·2026-04-17
抖音电商罗盘新版深度解读:5 张报表回答 80% 的运营决策
电商罗盘是抖店运营的「驾驶舱」,但报表多到看不过来。本文聚焦 5 张高价值报表:流量大盘、商品分析、客户分析、达人合作、广告效果,逐张说明「看什么、怎么用、决策是什么」。
同栏目《数据分析》