当夜幕低垂,运营人却还在 Excel 与飞书表格之间来回横跳,只为拼凑一份“昨日新增”与“七日留存”的交叉报表。
别再把宝贵的时间浪费在“求开发大哥”的漫长等待里——在“快缩短网址”(suo.run),我们把 SQL 从晦涩的代码变成指尖的轻舞,让数据查询像呼吸一样自然。

一、SQL,不是洪水猛兽
SQL(Structured Query Language)是数据库世界的通用语,而 MySQL 只是它的一个开源舞台。
增删查改四字诀里,运营人只需精通“查”——剩下的,交给开发。
记住:SELECT 是钥匙,FROM 是门,WHERE 是过滤网,GROUP BY 是聚光灯,ORDER BY 是节拍器。
二、三分钟连上数据源
1. 打开 Navicat,新建 MySQL 连接:
Host:suo.run
Port:3306
User / Password:向运维同学索取一次性访客账号(只读权限,安全无忧)。
2. 双击左侧“运营数据”库,右侧即刻呈现所有业务表。
3. 右键任意表 → 设计视图,字段、类型、注释一目了然。
小贴士:把常用表拖到“收藏夹”,下次一键直达。
三、五句诗,写尽日常查询
1. 昨日新增用户
SELECT DATE(create_time) AS 日期, COUNT(*) AS 新增
FROM user
WHERE create_time >= CURDATE() - INTERVAL 1 DAY
GROUP BY 日期;
2. 七日留存(第 2 日)
WITH first_day AS (
SELECT user_id, DATE(create_time) AS reg_day
FROM user
WHERE create_time BETWEEN CURDATE() - INTERVAL 7 DAY AND CURDATE() - INTERVAL 1 DAY
)
SELECT f.reg_day,
COUNT(DISTINCT f.user_id) AS 注册人数,
COUNT(DISTINCT l.user_id) AS 次日留存,
ROUND(COUNT(DISTINCT l.user_id) / COUNT(DISTINCT f.user_id), 2) AS 次日留存率
FROM first_day f
LEFT JOIN login_log l
ON f.user_id = l.user_id
AND l.login_date = f.reg_day + INTERVAL 1 DAY
GROUP BY f.reg_day
ORDER BY f.reg_day DESC;
3. 昨日热门短链 TOP10
SELECT short_code, long_url, click_pv, click_uv
FROM link_stat
WHERE stat_date = CURDATE() - INTERVAL 1 DAY
ORDER BY click_uv DESC
LIMIT 10;

4. 某渠道近 30 日转化漏斗
SELECT DATE(create_time) AS 日期,
SUM(CASE WHEN step = '曝光' THEN 1 ELSE 0 END) AS 曝光,
SUM(CASE WHEN step = '点击' THEN 1 ELSE 0 END) AS 点击,
SUM(CASE WHEN step = '注册' THEN 1 ELSE 0 END) AS 注册
FROM funnel
WHERE channel = 'wechat'
AND create_time >= CURDATE() - INTERVAL 30 DAY
GROUP BY 日期
ORDER BY 日期;

5. 实时在线人数(5 分钟粒度)
SELECT DATE_FORMAT(log_time, '%Y-%m-%d %H:%i:00') AS 时间点,
COUNT(DISTINCT user_id) AS 在线人数
FROM heartbeat
WHERE log_time >= NOW() - INTERVAL 1 HOUR
GROUP BY 时间点
ORDER BY 时间点 DESC;
四、让查询像短链一样优雅
在 suo.run,我们为运营人准备了一条“一键 SQL”捷径:
• 打开控制台 → 粘贴上述任一句 → 点击“运行” → 结果即刻可视化。
• 支持保存为“个人模板”,下次只需改动日期或渠道参数,3 秒复用。
• 结果可一键导出 CSV / PNG,直接丢进周会 PPT,再也不用手动截图。
五、彩蛋:一条命令,生成短链日报
SELECT CONCAT('https://suo.run/', short_code) AS 短链,
long_url, click_uv, click_pv, ROUND(click_pv / click_uv, 2) AS 人均点击
FROM link_stat
WHERE stat_date = CURDATE() - INTERVAL 1 DAY
ORDER BY click_uv DESC
LIMIT 20
INTO OUTFILE '/tmp/yesterday_top20.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

把 /tmp/yesterday_top20.csv 下载后,邮件主题填“昨日爆款短链”,正文留空,附件拖进去,点击发送——你的日报,10 秒完成。
尾声
运营的世界,数据是空气,SQL 是风。
在“快缩短网址”(suo.run),我们让风更轻,让空气更甜。
下一次,当同事还在群里排队等开发排期,你只需敲下 SELECT,便已洞见全局。