窗口函数 sum over用法(累加)
sum(col1) over(partition by col2 order by col3 );
以上的函数可以理解为:按col2 进行分组(partition ),每组以col3 进行排序(order),并进行连续加总(sum)。
例:
根据月份,物料名称进行分组,日期物料名称,部门名称进行排序,进行累加,得到月累计。
sum( nvl( nnums, 0 ) ) over ( partition BY substr( everyday_date, 0, 7 ), mat.name ORDER BY everyday_date, mat.name, deptname.name ) month_amount
根据年份,物料名称进行分组,日期物料名称,部门名称进行排序,进行累加,得到年累计。
sum( nvl( nnums, 0 ) ) over ( partition BY substr( everyday_date, 0, 4 ), mat.name ORDER BY everyday_date, mat.name, deptname.name ) year_amount