Sql 用于在表中插入薪资部门合计的查询
假设我有一个表,它的数据是Sql 用于在表中插入薪资部门合计的查询,sql,oracle,Sql,Oracle,假设我有一个表,它的数据是 EMPNO ENAME SAL DEPTNO TOTAL 7839 KING 5000 10 7698 BLAKE 2850 30 7782 CLARK 2450 10 7566 JONES 2975 20 7788 SCOTT 3000 20 7902 FORD 3000 20 7369 SMITH 800 20 7499 ALLEN
EMPNO ENAME SAL DEPTNO TOTAL
7839 KING 5000 10
7698 BLAKE 2850 30
7782 CLARK 2450 10
7566 JONES 2975 20
7788 SCOTT 3000 20
7902 FORD 3000 20
7369 SMITH 800 20
7499 ALLEN 1600 30
7521 WARD 1250 30
7654 MARTIN 1250 30
7844 TURNER 1500 30
7876 ADAMS 1100 20
7900 JAMES 950 30
7934 MILLER 1300 10
现在我想在“部门合计”列中插入工资总额
EMPNO ENAME SAL DEPTNO TOTAL
7839 KING 5000 10 8750
7698 BLAKE 2850 30 9400
7782 CLARK 2450 10 8750
7566 JONES 2975 20 10875
7788 SCOTT 3000 20 10875
7902 FORD 3000 20 10875
7369 SMITH 800 20 10875
7499 ALLEN 1600 30 9400
7521 WARD 1250 30 9400
7654 MARTIN 1250 30 9400
7844 TURNER 1500 30 9400
7876 ADAMS 1100 20 10875
7900 JAMES 950 30 9400
7934 MILLER 1300 10 8750
请帮助我,指引我 试试这个:
Update table_name t2 set t2.TOTAL= (select t1.temp from
(select DEPTNO ,sum(SAL) temp from table_name group by DEPTNO) t1 where
t1.DEPTNO=t2.DEPTNO);
您可以使用分析函数对每个部门分组的进行求和
SQL> SELECT t.empno, t.ename, t.sal, t.deptno,
2 sum(sal) OVER(PARTITION BY deptno) total
3 FROM emp t
4 /
EMPNO ENAME SAL DEPTNO TOTAL
---------- ---------- ---------- ---------- ----------
7782 CLARK 2450 10 8750
7839 KING 5000 10 8750
7934 MILLER 1300 10 8750
7566 JONES 2975 20 10875
7902 FORD 3000 20 10875
7876 ADAMS 1100 20 10875
7369 SMITH 800 20 10875
7788 SCOTT 3000 20 10875
7521 WARD 1250 30 9400
7844 TURNER 1500 30 9400
7499 ALLEN 1600 30 9400
7900 JAMES 950 30 9400
7698 BLAKE 2850 30 9400
7654 MARTIN 1250 30 9400
14 rows selected.
SQL>
您尝试过任何查询吗?尝试使用group by subqueryyes进行更新查询,但由于我尝试在14列中插入三个值,因此出现了缺少表达式的错误。我无法解决此问题。您应该始终发布有问题的try查询,以便其他人知道您尝试了什么,并告诉您问题所在。只需使用分析求和即可函数,看看我的答案。