交互式 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 (排序控制):支持单列/多列的
ASC与DESC切换,看清数据排序是如何决定排名高低的。 - ROWS / RANGE (帧控制):最硬核的功能。带你肉眼看清
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW(基于物理行)与RANGE(基于数值逻辑范围)在滑动时的本质区别。
🎓 玩转播放器:快速上手指南
只需四步,即可解锁窗口函数的精髓:
- 选定剧本 (函数配置)
在左侧面板中选择一个你感到困惑的函数(例如
DENSE_RANK或SUM)。 - 布设舞台 (制订规则)
配置你的
Partition(分组字段)和Order(排序字段)。此时右侧的数据底表会根据你的规则重新洗牌。 - 微调镜头 (帧界定)
如果是聚合函数,尝试开启
Rows或Range滑动帧,并设置上下界。 - 开始放映 (动画控制) 点击 [播放],工具将带你进入微观世界——看蓝色遮罩层如何定义当前窗口范围,看金色高亮指针如何逐行计算出最终结果!
📝 视觉效果与 SQL 语法对照
你在播放器中摆弄的每一个参数,都可以完美映射到如下的标准 SQL 模板中:
SELECT
your_columns,
-- 对应播放器的【函数选择】与【三要素配置】
【函数名】() OVER (
PARTITION BY 【分区字段】
ORDER BY 【排序字段】
【ROWS/RANGE 帧控制】
) AS window_result
FROM your_table;