天天看點

Oracle sql over用法

--求和兩種結果相同      

 select e.employee_id ,e.first_name,e.salary,sum(e.salary)

  from employees e

  group by e.employee_id ,e.first_name,e.salary;

 select e.employee_id ,e.first_name,e.salary,sum(e.salary) over() sum

  from employees e;

--求和

Oracle sql over用法

--第二行的sum=第一行裡的sal+第二行裡的sal;

-- 第二行的sum=第一行裡的sal+第二行裡的sal+第三行裡的sal;

select e.employee_id, 

       e.department_id, 

       e.first_name, 

       e.salary, 

       sum(e.salary) over(order by e.first_name) sum 

  from employees e;

--結果如圖

Oracle sql over用法

 --每個sum的值都是把last_name相同的sal值進行求和。

SELECT e.employee_id,

       e.department_id,

       e.last_name,

       e.salary,

       SUM(e.salary) over(PARTITION BY e.last_name) SUM

  FROM employees e;

--結果如圖

Oracle sql over用法