对数据库的各项应用与操作都离不开SQL来对数据进行增删改查。
例如 : 有一张某公司职员信息表如下:
需求1:在公司职员信息表中,请统计各部门,各岗位下的员工人数。
如果这个SQL语句不会写或者不知道怎么操作可以交给ChatGPT4来完成。
Prompt: 有一个某公司职员表,empno为员工编号,dept为部门,JOB为员工岗位,请写出一个SQL语句来统计每个部门,每个岗位下有多少名员工?
SQL 语句ChatGPT4直接写好,我们可以拿过来进行验证。
直接就统计好了各部门各岗位下的员工人数。
需求2:请统计各岗位下的平均工资,每个员工的工资与平均工资的差距是多少?
Prompt: 有一个某公司职员表,表名为Bank_emp,empno为员工编号,ename为员工姓名,JOB为员工岗位,sal为工资,请写出一个SQL语句来统计每个岗位下的平均工资,员工工资与平均工资的差距是多少?
感谢你提供更具体的表格信息。针对你的新要求,我将给出相应的SQL查询语句。这个查询语句将计算每个岗位下的平均工资以及每位员工的工资与其岗位的平均工资的差距。
sql复制代码
SELECT t1.ename, t1.job, t1.sal, t2.avg_sal, (t1.sal - t2.avg_sal) AS diff FROM (SELECT empno, ename, job, sal FROM Bank_emp) AS t1 JOIN (SELECT job, AVG(sal) as avg_sal FROM Bank_emp GROUP BY job) AS t2 ON t1.job = t2.job;
在这个查询中,我首先创建了一个子查询 t1
,这个子查询从员工表 Bank_emp
中选择了员工编号 empno
,员工姓名 ename
,岗位 job
,以及工资 sal
。然后,我创建了另一个子查询 t2
,该子查询从员工表 Bank_emp
中选择了岗位 job
,以及对应的平均工资 avg_sal
。我然后将这两个子查询通过岗位 job
进行了连接,这样我就可以得到所有员工的姓名,他们的工资,他们所在岗位的平均工资,以及他们的工资与岗位平均工资的差距 diff
。
请在实际使用中根据你的数据库的实际结构和需求进行适当的修改。
我们将SQL复制到数据库中进行验证:
这样就得到了中工工资与该员工所在岗位平均工资的差额。
在SQL中用到了子查询,连接查询,分组,统计函数等知识点。
更多精彩内容: