小编aur*_*ije的帖子

在Oracle中有和没有KEEP的PARTITION BY

我遇到了两个似乎有相同结果的查询:在分区上应用聚合函数.

我想知道这两个查询之间是否有任何区别:

SELECT empno,
   deptno,
   sal,
   MIN(sal) OVER (PARTITION BY deptno) "Lowest",
   MAX(sal) OVER (PARTITION BY deptno) "Highest"
FROM empl

SELECT empno,
   deptno,
   sal,
   MIN(sal) KEEP (DENSE_RANK FIRST ORDER BY sal) OVER (PARTITION BY deptno) "Lowest",
   MAX(sal) KEEP (DENSE_RANK LAST ORDER BY sal) OVER (PARTITION BY deptno) "Highest"
FROM empl
Run Code Online (Sandbox Code Playgroud)

第一个版本更合乎逻辑,但第二个版本可能是某种特殊情况,也许是一些性能优化.

sql oracle

15
推荐指数
2
解决办法
3万
查看次数

标签 统计

oracle ×1

sql ×1