Workflows

从 SQL 构建图表

好图表通常不是从任意结果表“自动变出来”的,而是来自结构清晰的 SQL 输出。Dory 的 Charts & Results 可以帮助你把查询结果可视化,但前提是 SQL 结果已经表达了明确的时间、维度和指标。

什么时候使用这个流程

  • 你已经写好 SQL,但图表效果不理想。
  • 查询结果列太多,不知道该选择哪个图表。
  • 需要把明细数据整理成趋势或 Top N。
  • 需要让 AI 帮你把 SQL 改成图表友好结构。
  • 要把分析结果分享给团队。

1. 先确定图表问题

在写 SQL 前先明确图表要回答什么:

  • 趋势:某个指标随时间如何变化?
  • 对比:不同分类之间谁更高?
  • 占比:整体中各部分占多少?
  • 分布:数值集中在哪些区间?
  • 明细:哪些记录需要进一步排查?

2. 按图表类型整理结果

图表类型推荐结果结构示例列
折线图时间列 + 指标列date, revenue
柱状图分类列 + 指标列channel, orders
饼图少量分类 + 数值列status, count
多指标趋势时间列 + 多个指标列date, dau, orders
明细表ID、时间、状态、关键字段order_id, created_at, status

3. 用 SQL 提前聚合

不要把大量明细行直接交给图表。先在 SQL 中完成聚合:

SELECT
  DATE(created_at) AS date,
  COUNT(*) AS orders
FROM orders
WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY date
ORDER BY date;

不同数据库的日期函数不同。ClickHouse、PostgreSQL、MySQL 和 SQLite 需要使用各自方言。

4. 让 AI 改写成图表友好 SQL

如果你已有一条查询,可以让 AI 改写:

请把当前 SQL 改写成适合折线图的结果结构:
- 第一列是 date
- 第二列是 orders
- 按 date 升序
- 只统计最近 30 天
- 保持当前过滤条件不变

也可以让 AI 推荐图表:

请根据当前查询结果判断最适合的图表类型,并说明需要怎样调整 SQL 输出列。

5. 在 Charts & Results 中验证

切换到 Charts & Results 后检查:

  • X 轴是否是正确维度。
  • Y 轴是否是正确指标。
  • 是否需要排序或 Top N。
  • 是否存在过多分类。
  • 空值和异常值是否影响可读性。

常见问题

为什么图表看起来很乱?

通常是分类太多、结果未聚合、列名不清晰或排序不稳定。先改 SQL,而不是只改图表设置。

饼图什么时候不适合?

分类太多或差异很小时不适合。优先使用柱状图或 Top N。

图表数据和表格数据不一致怎么办?

先确认图表使用的是哪几列,以及 SQL 是否已经聚合。不要在图表层隐式改变业务口径。

下一步

这篇文档有帮助吗?