在 PostgreSQL 中,over()
函數用于定義窗口函數(window function)。窗口函數是一種特殊的 SQL 函數,可以在查詢結果中的一組行上執行計算,而不僅僅是單個行。over()
函數可以指定窗口函數的窗口范圍,例如指定在整個查詢結果中計算,或者按照特定的排序方式進行計算。
下面是一個示例,演示如何在 PostgreSQL 中使用 over()
函數:
SELECT
department,
employee_name,
salary,
SUM(salary) OVER (PARTITION BY department) AS department_total_salary
FROM
employees;
在上面的示例中,SUM(salary) OVER (PARTITION BY department)
表示對每個部門中的所有員工的工資進行求和計算,并將結果返回為一個新的列 department_total_salary
。在這里,PARTITION BY department
指定了窗口函數的分組方式,即按照部門進行分組計算。
總的來說,over()
函數的用法是為窗口函數提供窗口范圍,并允許指定如何對數據進行分組和排序。