"景先生毕设|www.jxszl.com

oracle评级函数、窗口函数

2023-09-12 15:40编辑: www.jxszl.com景先生毕设
评级函数:

用于等级、百分点、n分片等。

函数

说明

RANK()

返回数据项在分组中的排名,排名相等会在名次中留下空位

DENSE_RANK()

返回数据项在分组中的排名,排名相等会在名次中不会留下空位

CUME_DIST()

返回特定值对于一组值的位置“cumulative distribution”(累积分布)

PERCENT_RANK()(

返回某个值相对于一组值的百分比排名

NTILE()

返回n分片后的值

ROW_NUMBER()

为每条记录返回一个数字

 

  • 1 2 column_name, OVERBY column_name AS rank, OVERBY DESC5 OVER (BY column_name OVER(PARTITION month BY column_name  CUME_DIST()、PERCENT_RANK()

NTILE()

ROW_NUMBER()

ROW_NUMBER()从1开始,为每条记录返回一个数字

OVER (BY column_name AS row_name
2.窗口函数:

可以计算一定范围内、一定值域内、或者一段时间内的累积和以及移动平均值等。

可以结合聚集函数SUM() 、AVG() 等使用。

可以结合FIRST_VALUE() 和LAST_VALUE(),返回窗口的第一个和最后一个值

  • SELECT SUM(amount) month_amount, SUM(amount)) ORDER month ROWS AND AS cumulative_amount GROUP month BY SUM( OVER (BY BETWEEN AND AS cumulative_amount
也可以
SUM(amount)) ORDER month AS cumulative_amount
前后一个月之间的和
SUM(amount)) ORDER month ROWS 1 PRECEDING 1 FOLLOWING) SUM(amount)) ORDER month ROWS 1 PRECEDING 1 FOLLOWING) SUM(amount)) ORDER month ROWS 1 PRECEDING 1 FOLLOWING) 3.报表函数:
用于执行跨越分组和组内分区的计算  (这里的组应该指的是 ORDER BY 的分组)
OVER(PARTITION 4.LAG()、LEAD()
获得相对于当前记录指定距离的那条记录的数据
LAG()为向前、LEAD()为向后
LAG(column_name1,OVER(BY column_name2)

LEAG(column_name1,OVER(BY column_name2)
这样就获得前一条、后一条的数据

SELECT
month) KEEP(DENSE_RANK FIRST BY AS highest_sales_month,
month) KEEP(DENSE_RANK LAST BY AS lows_sales_month
GROUP month
BY <span style="\&quot;color:" #ff00ff;\"="">month;

原文链接:http://www.jxszl.com/biancheng/shujuku/445410.html