如何获得工资等级的员工总和

时间:2018-05-22 23:10:41

标签: sql oracle oracle11g

所以我必须显示每个薪资等级的员工人数。员工和salgrade是他们自己的表。 香港专业教育学院尝试过:

select count(empno), grade
from emp, salgrade
group by grade
order by grade;

但是我将员工总数作为工资等级中的金额

COUNT(EMPNO)      GRADE
------------ ----------
      42          1
      42          2
      42          3
      42          4
      42          5

由于某种原因,我不能让查询列出每个年级的工资。我尝试了不同的方法虽然我得到了随机值,如0,9等

CREATE TABLE DEPT ( 
DEPTNO NUMBER(2) NOT NULL, 
DNAME CHAR(14), 
LOC CHAR(13), 
CONSTRAINT DEPT_PRIMARY_KEY PRIMARY KEY (DEPTNO)); 

INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK'); 
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS'); 
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO'); 
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON'); 

CREATE TABLE EMP ( 
EMPNO NUMBER(4) NOT NULL, 
ENAME CHAR(10), 
JOB CHAR(9), 
MGR NUMBER(4) CONSTRAINT EMP_SELF_KEY 
REFERENCES EMP (EMPNO), 
HIREDATE DATE, 
SAL NUMBER(7,2), 
COMM NUMBER(7,2), 
DEPTNO NUMBER(2) NOT NULL, 
CONSTRAINT EMP_FOREIGN_KEY FOREIGN KEY (DEPTNO) REFERENCES DEPT (DEPTNO), 
CONSTRAINT EMP_PRIM_KEY PRIMARY KEY (EMPNO)); 

INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'17-NOV-                    
1981',5000,NULL,10); 
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'1-MAY-
1981',2850,NULL,30); 
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'9-JUN-
1981',2450,NULL,10); 
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'2-APR-
1981',2975,NULL,20); 
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'28-SEP-
1981',1250,1400,30); 
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'20-FEB-
1981',1600,300,30); 
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'8-SEP-
1981',1500,0,30); 
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'3-DEC-1981',950,NULL,30); 
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'22-FEB-
1981',1250,500,30); 
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'3-DEC-
1981',3000,NULL,20); 
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'17-DEC-
1980',800,NULL,20); 
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'09-DEC-
1982',3000,NULL,20); 
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'12-JAN-
1983',1100,NULL,20); 
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'23-JAN-
1982',1300,NULL,10); 

CREATE TABLE SALGRADE ( 
GRADE NUMBER, 
LOSAL NUMBER, 
HISAL NUMBER); 

INSERT INTO SALGRADE VALUES (1,700,1200); 
INSERT INTO SALGRADE VALUES (2,1201,1400); 
INSERT INTO SALGRADE VALUES (3,1401,2000); 
INSERT INTO SALGRADE VALUES (4,2001,3000); 
INSERT INTO SALGRADE VALUES (5,3001,9999); 

1 个答案:

答案 0 :(得分:0)

您需要加入两个表:

<强> SQL DEMO

| COUNT(EMPNO) | GRADE |
|--------------|-------|
|            3 |     1 |
|            3 |     2 |
|            2 |     3 |
|            5 |     4 |
|            1 |     5 |

<强>输出

{ status: 200, content: "Hello, world" }