在Oracle中,OVER函數(shù)用于在窗口函數(shù)中指定窗口的范圍。它通常與聚合函數(shù)一起使用,例如SUM()、AVG()等。以下是一個示例:
SELECT
employee_id,
salary,
SUM(salary) OVER (ORDER BY employee_id) AS running_total
FROM
employees;
在上面的示例中,我們對employees表中的salary字段進行累積求和,并按employee_id進行排序。運行結(jié)果會顯示每個員工的累積工資總和。
OVER子句中的ORDER BY子句指定了排序的規(guī)則,可以根據(jù)需要進行修改,比如按照salary字段排序。
除了ORDER BY之外,OVER函數(shù)還可以與PARTITION BY一起使用,以對窗口進行分組。
SELECT
department_id,
employee_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_salary
FROM
employees;
在上面的示例中,我們根據(jù)department_id對員工的salary字段進行分組,并計算每個部門的平均工資。結(jié)果中會顯示每個員工的平均工資。
總的來說,Oracle的OVER函數(shù)可以靈活應(yīng)用于各種窗口函數(shù)場景,通過合理設(shè)置OVER子句的參數(shù),可以實現(xiàn)不同的窗口分析需求。