溫馨提示×

Oracle中的OVER函數如何使用

小樊
97
2024-08-18 02:23:41
欄目: 云計算

在Oracle中,OVER函數通常與分析函數一起使用,以便在結果集中執行窗口函數計算。語法如下:

<analytic_function> OVER (
    [PARTITION BY <column_list>]
    [ORDER BY <column_list>]
    [window_clause]
)

其中,<analytic_function>表示要執行的分析函數,如SUM、AVG、ROW_NUMBER等;<column_list>是分區和排序的列名;window_clause用于指定窗口規范,如RANGE或ROWS等。

例如,要計算每個部門的平均工資與該部門內的所有員工的平均工資之間的差異,可以使用以下查詢:

SELECT 
    department_id,
    employee_id,
    salary,
    AVG(salary) OVER (PARTITION BY department_id) AS department_avg_salary,
    AVG(salary) OVER () AS overall_avg_salary,
    AVG(salary) OVER () - AVG(salary) OVER (PARTITION BY department_id) AS salary_difference
FROM employees;

在這個例子中,AVG(salary) OVER (PARTITION BY department_id)計算每個部門的平均工資,AVG(salary) OVER ()計算整個結果集的平均工資,然后計算每個部門的平均工資與整個結果集的平均工資之間的差異。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女