暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql_19

那些年了 2021-09-04
194

26、列出在每个部门工作的员工数量, 平均工资和平均服务期限

SELECT
d.DEPTNO,
count(e.ename) count name,
IFNULL(avg(e.sal),0)avgsal,
IFNULL(avg(TIMESTAMPDIFF(YEAR,HIREDATE,NOW())),0)avgservicetime
FROM
emp e
right JOIN
dept d ON e.DEPTNO=d.DEPTNO
GROUP BY
DEPTNO;

mysql当中怎么计算两个日期的“年差”,差了多少年?

         TimeStampDiff(间隔类型, 前一个日期, 后一个日期)

         timestampdiff(YEAR,hiredate, now())

         间隔类型:

                   SECOND   秒,

                   MINUTE   分钟,

                   HOUR   小时,

                   DAY   天,

                   WEEK   星期

                   MONTH   月,

                   QUARTER   季度,

                   YEAR  


27、列出所有员工的姓名、部门名称和工资

SELECT
e.ename,
d.dname,
e.sal
FROM
emp e
JOIN dept d ON e.DEPTNO = d.DEPTNO;


28、列出所有部门的详细信息和人数

SELECT
d.*,count(e.ename)
FROM
dept d
LEFT JOIN emp e ON d.DEPTNO = e.DEPTNO
GROUP BY
d.DEPTNO;


29、列出各种工作的最低工资及从事此工作的雇员姓名

SELECT
t.*,e.ename
FROM
emp e
JOIN (
SELECT
job,
MIN(sal)minsal
FROM
emp
GROUPBY
job
) t ON e.job = t.job
AND e.sal = t.minsal;


30、列出各个部门的MANAGER( 领导) 的最低薪金

SELECT
DEPTNO,
job,
MIN(sal)
FROM
emp
WHERE
job= 'manager'
GROUP BY
DEPTNO;


31、列出所有员工的年工资,按年薪从低到高排序

SELECT
ename,
(sal+ IFNULL(COMM, 0)) * 12 AS yearsal
FROM
emp
ORDER BY
yearsal;


32、求出员工领导的薪水超过3000的员工名称与领导

SELECT
a.ename'员工',
b.ename'领导'
FROM
emp a
JOIN emp b ON a.MGR = b.EMPNO
WHERE
b.sal> 3000;


33、求出部门名称中, 带'S'字符的部门员工的工资合计、部门人数

SELECT
d.deptno,
d.loc,
d.dname,
IFNULL(SUM(e.sal),0) sumsal,
count(e.ename)countname
FROM
emp e
right JOIN dept d ON e.DEPTNO = d.DEPTNO
WHERE
d.DNAMELIKE '%s%'
GROUP BY
d.DEPTNO,
d.DNAME,
d.loc;


34、任职日期超过 35 年的员工加薪 10%显示出来

SELECT
ename,
salbeforesal,
sal* 1.1 aftersal
FROM
emp
WHERE
TIMESTAMPDIFF(YEAR,HIREDATE, NOW()) > 35;


文章转载自那些年了,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论