你是不是也被 ROW_NUMBER、RANK、DENSE_RANK 这三个函数搞晕过?看文档每个都像,用起来结果又不一样。 说白了,记住三句话就够了。 ROW_NUMBER 是老实人,不管分数一不一样,挨个编号,1 2 3 4 5。 RANK 是体育老师,并列第一就两个 1,下一个直接跳到 3。 DENSE_RANK 是佛系青年,并列第一两个 1,下一个还是 2,不跳号。 面试的时候,考得最多的就是「查每个部门工资最高的员工」。用 ROW_NUMBER 按部门分组、按工资降序编号,取编号为 1 的那行,完事。 窗口函数没那么可怕,PARTITION BY 就是分组,ORDER BY 就是排序,剩下的就是编号方式不同而已。 刚开始我也总搞混,后来发现理解了编号逻辑,语法自然就记住了。 #SQL面试 #数据分析 #窗口函数 #SQL学习