温馨提示×

oracle分组函数partition怎么用

小亿
250
2023-12-13 20:50:12
栏目: 云计算

在Oracle中,PARTITION BY子句用于将查询结果按照指定的列或表达式分成不同的分组。它常常与分组函数一起使用,以便对每个分组进行聚合计算。

具体用法如下:

SELECT1, 列2, ..., 分组函数(列) OVER (PARTITION BY 列或表达式 ORDER BY 列)
FROM 表名;

其中,列1、列2等为要查询的列,分组函数为聚合函数(如SUM、AVG等),列为分组的依据列或表达式,表名为要查询的表名。

示例:

假设有一个员工表employees,包含员工ID(employee_id)、部门ID(department_id)和工资(salary)等字段,我们希望计算每个部门内的员工工资总和。

SELECT department_id, SUM(salary) OVER (PARTITION BY department_id ORDER BY employee_id) as total_salary
FROM employees;

这个查询会根据部门ID进行分组,并按照员工ID进行排序。对于每个分组,将计算对应部门中所有员工的工资总和,并将结果新的列返回。

0