VIPSQL/通用优化

窗口函数的执行顺序到底是什么?为什么WHERE里不能直接用ROW_NUMBER

先抓住题目的核心考点,再把答案拆成可复述的面试表达。

1280 次浏览2026/7/9
先下定义一句话说清它是什么,面试官先听到结论。
再讲机制拆出关键流程、边界条件和常见坑位。
最后落场景结合生产经验,说出什么时候用、怎么权衡。

题目描述

请回答:窗口函数的执行顺序到底是什么?为什么WHERE里不能直接用ROW_NUMBER

这是 SQL 面试里非常高频、也非常容易答错的一道题。面试官不是想听你背几个函数名,他真正想听的是:你知不知道窗口函数在整条 SQL 里什么时候执行,以及为什么有些写法看起来合理但实际会报错

大部分人的错误回答是:"窗口函数就是分组排序嘛,先 PARTITION BY,再 ORDER BY。"这只能解释窗口函数内部怎么排,解释不了 SQL 整体执行顺序。面试官只要追问一句:为什么 WHERE rn = 1 不能直接写?窗口函数和 GROUP BY 谁先执行? 就很容易露馅。

参考答案

评论

登录 后参与评论

加载中...