在Oracle中,OVER()函數用于在窗口函數中指定窗口的范圍。通過使用OVER()函數,可以實現對查詢結果集的分組和排序操作。
以下是使用OVER()函數的一般語法:
SELECT
column1,
column2,
OVER (PARTITION BY column3 ORDER BY column4) AS window_function
FROM table_name;
在上面的語法中,PARTITION BY子句用于指定分組的列,而ORDER BY子句用于指定排序的列。通過使用OVER()函數,可以對每個分組應用窗口函數,并返回相應的結果。
例如,以下是一個示例查詢,使用OVER()函數計算每個部門中員工的平均工資:
SELECT
department_id,
employee_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_salary
FROM
employees;
在上面的查詢中,OVER()函數根據department_id分組,計算每個部門中員工的平均工資,并將結果存儲在avg_salary列中。
總之,通過使用Oracle中的OVER()函數,可以在窗口函數中定義窗口的范圍,實現對查詢結果集的分組和排序操作。