我一直在学习窗口功能(例如OVER
,RANK
,PARTITION BY
条款)在PostgreSQL的,但我仍然困惑何时以及如何使用它们,会是什么结果输出是什么意思?
有人对它们有一些概括的解释吗?
我可以举一个简单的示例供您使用rank
。
假设您有student_marks
表格,并且每个课程都有一个测试。(第1类,第2类,..测试在单个表中为每个学生加分,为简单起见,所有数据都在一个表中考虑)
如果现在要将每个班级的结果提供给学生(最高分会产生第一个数字,依此类推),则可以使用rank
以下方法:
Rank() over (partition by class order by marks desc) -- student_rank_in_class
这里,
Partition by class
-表示应按班级给出等级。
Order by marks desc
-意味着在每个班级中,成绩最高的学生(marks desc
)应该被赋予第一名,然后第二高的学生应当被给予第二名,依此类推。
希望,这一解释将使您对rank
窗口功能有所了解。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句