min(x)over(partition by ... order by ...)
(2014-12-15 09:09:49)
标签:
min()over()min(x)over(partition |
分类: Oracle |
9.min(x)over(partition by ... order by ...)
SELECT G.*, min(工资) OVER(partition by 部门) 部门最低工资
结果:
王五 人事 4000 4000
赵六 研发 7000 6500
刘二 研发 6500 6500
陈一 研发 6500 6500
张三 财务 5000 5000
李四 财务 5200 5000
程序根据order by后填写的字段进行默认分组并取每组中最小值
当第一位是4000,第二位小于第一位时,第二位显示数据不会被第一位代替
当第三位大于第二位时,第三位显示第二位的数据
当第四位大于第二位时,第四位显示第二位的数据 剩下依次
SELECT G.*, min(工资) OVER(order by 部门) 计算后工资
结果:
王五 人事 4000 4000
赵六 研发 7000 3200
刘二 研发 3200 3200
陈一 研发 6500 3200
张三 财务 5000 2200
李四 财务 2200 2200
SELECT G.*, min(工资) OVER(partition by 部门 order by 工资)
计算后工资
结果:
王五 人事 4000 4000
刘二 研发 6500 6500
陈一 研发 6500 6500
赵六 研发 7000 6500
张三 财务 5000 5000
李四 财务 5200 5000
注:在以上窗口函数中,partition by、order by 后可以填写 null。

加载中…