跳到主要内容

交互式 SQL 窗口函数播放器

💡 这是一个会动的 SQL 教程!

传统的 SQL 教程往往只给出一张冷冰冰的结果表,而忽略了“分组、排序、滑动窗口”的动态计算过程。本播放器通过逐行步进动画,将窗口函数的底层执行逻辑完全可视化。


📺 核心功能在线体验


🚀 播放器核心亮点解析

本工具不是简单的静态模拟,而是基于前端轻量级数据引擎实现的动态渲染器。它完美还原了标准 SQL 中 OVER() 子句的核心生命周期:

1. 全功能的函数矩阵

播放器内置了 5 大类、共 16 种最常用的标准 SQL 窗口函数:

函数分类支持的函数列表核心演示看点
排名函数 (Ranking)ROW_NUMBER, RANK, DENSE_RANK, NTILE观察当遇到相同排序值时,三种排名算法的跳跃/连续行为差异。
聚合函数 (Aggregate)SUM, AVG, COUNT, MAX, MIN实时观察随着窗口帧(Frame)的滑动,累计值是如何逐行累加或变化的。
偏移函数 (Offset)LAG, LEAD看清当前行是如何跨行“向前看”或“向后看”,抓取错位数据的过程。
首尾定位 (Value)FIRST_VALUE, LAST_VALUE, NTH_VALUE演示在不同的边界控制下,指针如何锁定当前窗口的绝对第一行或最后一行。
分布函数 (Distribution)PERCENT_RANK, CUME_DIST直观展示百分比及累积分布频率在数据集中的动态计算。

2. 精准的窗口三要素控制

你可以自由组合并调整以下参数,实时观察它们对最终计算域的影响:

  • PARTITION BY (分区控制):观察数据是如何被切分成独立的“数据小岛”,以及窗口函数在跨越分区边界时如何自动重置计数
  • ORDER BY (排序控制):支持单列/多列的 ASCDESC 切换,看清数据排序是如何决定排名高低的。
  • ROWS / RANGE (帧控制)最硬核的功能。带你肉眼看清 ROWS BETWEEN 2 PRECEDING AND CURRENT ROW(基于物理行)与 RANGE(基于数值逻辑范围)在滑动时的本质区别。

🎓 玩转播放器:快速上手指南

只需四步,即可解锁窗口函数的精髓:

  1. 选定剧本 (函数配置) 在左侧面板中选择一个你感到困惑的函数(例如 DENSE_RANKSUM)。
  2. 布设舞台 (制订规则) 配置你的 Partition(分组字段)和 Order(排序字段)。此时右侧的数据底表会根据你的规则重新洗牌。
  3. 微调镜头 (帧界定) 如果是聚合函数,尝试开启 RowsRange 滑动帧,并设置上下界。
  4. 开始放映 (动画控制) 点击 [播放],工具将带你进入微观世界——看蓝色遮罩层如何定义当前窗口范围,看金色高亮指针如何逐行计算出最终结果!

📝 视觉效果与 SQL 语法对照

你在播放器中摆弄的每一个参数,都可以完美映射到如下的标准 SQL 模板中:

SELECT 
your_columns,
-- 对应播放器的【函数选择】与【三要素配置】
【函数名】() OVER (
PARTITION BY 【分区字段】
ORDER BY 【排序字段】
ROWS/RANGE 帧控制】
) AS window_result
FROM your_table;