设为首页 加入收藏

TOP

postgresql整理(三)
2015-11-21 01:33:26 来源: 作者: 【 】 浏览:3
Tags:postgresql 整理
* from empsalary;

计算某个值在一组行中的相对位置。

\

select ntile(3) over (partition by depnameorder by salary desc),* from empsalary;

从1到当前值,除以分组的的数量,尽可能使分布平均

\

select lag(salary,2,NULL) over(partition bydepname order by salary desc),* from empsalary;

偏移量函数,取滞后值,如lag(column_name,2,0)表示字段偏移量为2,没有则用default值代替,这里是0,不写默认是null

\

select first_value(salary) over(partition bydepname order by salary desc),* from empsalary;

从窗口第一行返回值。

注释

FIRST_VALUE函数使您不用自连接就能(依照某种排序)选择表中的第一个值。如果您希望使用第一个值作为计算的基准,此函数很有价值。

FIRST_VALUE函数从窗口提取第一个记录。然后针对第一个记录计算 expression 并返回结果。

如果指定 IGNORE NULL,则返回 expression 的第一个非 NULL 值。如果指定 RESPECT NULLS(缺省值),则会返回第一个值,无论其是否为 NULL。

FIRST_VALUE 函数与其它大多数集合函数的不同之处在于:该函数只能与窗口说明一起使用。

\

select last_value(salary) over (partition bydepname ),* from empsalary;

从窗口最后一行返回值。

注释

LAST_VALUE函数使您不用自连接就能(依照某种排序)选择表中的最后一个值。如果您希望使用最后一个值作为计算的基准,此函数很有价值。

LAST_VALUE函数在完成 ORDER BY 后从分区提取最后一个记录。然后针对最后一个记录计算 expression 并返回结果。

如果指定 IGNORE NULL,则返回 expression 的最后一个非 NULL 值。如果指定 RESPECT NULLS(缺省值),则会返回最后一个值,无论其是否为 NULL。

LAST_VALUE函数与其它大多数集合函数的不同之处在于:该函数只能与窗口说明一起使用。

\

select nth_value(salary,2) over (partition by depname order by salary),* fromempsalary;

返回窗口框架中的指定值,如nth_value(salary,2),则表示返回字段salary的第二个窗口函数值

\

主意last_value()和first_value()函数的运用,当使用order by 只会对当前行排序。例如:

\

修改为order by的范围:


首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇五种完整性约束分别是什么――基.. 下一篇emoji表情字符插入的配置

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: