sql语句练习2

news2024/12/28 3:23:40

1、列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资

做法:
第一步:找出至少有一个员工的部门编号
	mysql>select deptno,count(empno)
	from emp
	group by deptno
	having count(empno)>0;
第二步:	找到部门名称,因为数据量小,所以可以将之前的emp表和dept表两个进行连接,统一采用多字段分组的方式进行查询
	mysql>select d.deptno,d.dname,count(e.empno)
	from emp e,dept d
	where e.deptno=d.deptno(+)
	group by d.deptno,d.dname
	having count(e.empno)>0;
第三步:继续统计
	mysql>select d.deptno,d.dname,count(e.empno),avg(sal),min(sal),max(sal)
	from emp e,dept d
	where d.deptno=e.deptno(+)
	group by d.deptno,d.dname
	having count(e.empno)>1;

在这里插入图片描述
2、列出薪金比SMITH或者ALLEN多的所有员工的编号、姓名、部门名称、其领导姓名

做法:
第一步:找出SMITH和ALLEN的工资
	select sal from emp where ename in ('SMITH','ALLEN');
第二步:以上的查询返回的结果是多行单列,按照子查询的要求在WHERE子句中写合适,所以将上面的查询作为一个子查询出现,继续查询符合此要求的员工的编号、姓名
	mysql>select e.empno,e.ename
	from emp e
	where e.sal>any (
		select sal
		from emp
		where ename in ('SMITH','ALLEN'));
第三步:查询出部门的名称,引入部门表,同时增加消除笛卡儿积的条件
	mysql>select e.empno,e.ename,d.dname
	from emp e,dept d
	where e.sal>any(
		select sal
		from emp
		where ename in ('SMITH','ALLEN'))
	and e.deptno=d.deptno;
第四步:领导的信息需要emp表自身关联
	mysql>select e.empno,e.ename,d.dname,m.ename
	from emp e,dept d,emp m
	where e.sal>any(
		select sal
		from emp
		where ename in ('SMITH','ALLEN'))
		and e.deptno=d.deptno
		and e.mgr=m.empno(+);

在这里插入图片描述
这只是第一步查询
在这里插入图片描述
这是第二步
第三步
在这里插入图片描述
3、列出所有员工的编号、姓名及其直接上级的编号、姓名,显示的结果按领导年工资的降序排列思路:

做法:
第一步:查询员工的编号、姓名和领导的编号、姓名;
	mysql>select e.empno,e.ename,m.empno,m.ename
	from emp e,emp m
	where e.mgr=m.empno(+);
第二步:增加计算领导年工资按降序排列;
	mysql>select e.empno,e.ename,m.empno,m.ename,(m.sal+nvl(m.comm,0))*12 income
	from emp e,emp m
	where e.mgr=m.empno(+)
	order by income desc;

4、列出雇佣日期早于其直接上级的所有员工的编号、姓名、部门名称、部门位置、部门人数

第一步:列出所有受雇日期早于其直接上级的所有员工的编号,姓名
mysql> select a.empno,a.ename,a.hiredate,b.empno,b.ename,b.hiredate from emp a join emp b
on a.mgr=b.empno  where a.hiredate<b.hiredate;
第二步:列出所有受雇日期早于其直接上级的所有员工的编号,姓名,部门名称
mysql> select a.empno,a.ename,d.dname from emp a join emp b on a.mgr=b.empno join dept d o
n a.deptno=d.deptno where a.hiredate<b.hiredate;

第一步
在这里插入图片描述
第二步
在这里插入图片描述
5、列出部门名称和这些部门的员工信息(人数、平均工资),同时列出那些没有员工的部门

mysql>select d.dname, e.ename,e.job from emp e right join dept d on e.deptno=d.deptno

在这里插入图片描述
6、列出所有CLERK的姓名及其部门名称,部门的人数,工资等级

mysql> select e.name,d.dname,count(empno),s.grade from emp e,dept d,salgrade s
     where e.deptno=d.deptno and e.job = 'CLERK'and
     (e.sal between s.losal and s.hisal)
     group by e.ename,d.dname,s.grade;

在这里插入图片描述
在这里插入图片描述
7、列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数及所在部门名称、位置、平均工资

mysql> select e.job,count(e.empno),d.dname,d.loc,avg(e.sal) from emp e,dept d
    -> where e.deptno=d.deptno
    -> and e.sal>1500
    -> group by e.job,d.dname,d.loc;

在这里插入图片描述
8、列出在部门SALES工作的员工的姓名、基本工资、雇佣日期、部门名称,假定不知道该部门的部门编号

mysql> select e.ename,e.sal,e.hiredate,d.dname
       from emp e,dept d
       where e.deptno=d.deptno 
       and d.dname='SALES';

在这里插入图片描述
9、列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级

mysql> select e.ename,d.dname,m.ename,s.grade from emp e,dept d,emp m,salgrade s
    -> where e.deptno = d.deptno and e.mgr = m.empno
    -> and e.sal > (select avg(sum(sal)) from emp group by sal)
    -> and e.sal between s.losal and s.hisal;

10、列出与SCOTT从事相同工作的所有员工及部门名称,部门人数

mysql> select e.name,d.dname,count(e.empno) from emp e,dept d
    -> where e.deptno=d.deptno and
    -> e.job=(select job from emp where ename='SCOTT')
    -> group by e.ename,d.dname;

在这里插入图片描述
在这里插入图片描述
11、列出公司各个工资等级雇员的人数、平均工资

mysql>select s.grade,count(e.empno),avg(e.sal)
      from emp e,salgrade s
      where e.sal between s.losal and s.hisal
     group by s.grade,s.losal,s.hisal
    order by s.grade;

在这里插入图片描述
12、列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称

mysql>select e.empno,e.ename,e.sal,d.dname
	  from emp e,dept d
      where sal>all(
	  select sal from emp where deptno=30)
	  and e.deptno=d.deptno;

在这里插入图片描述
13、列出在每个部门工作的员工数量、平均工资和平均服务期限

mysql>select d.deptno,d.dname,count(e.empno),avg(e.sal),
	  avg(months_between(sysdate,hiredate)/12) year
      from emp e,dept d
     where e.deptno(+)=d.deptno
     group by d.deptno,d.dname;

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

mysql>select e.ename,d.dname,e.sal
      from emp e,dept d
      where e.deptno=d.deptno;

在这里插入图片描述
15、列出所有部门的详细信息和部门人数

mysql>select d.deptno,d.dname,d.loc,count(e.empno)
  	  from emp e,dept d
	  where e.deptno(+)=d.deptno
	  group by d.deptno,d.dname,d.loc;

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

mysql>select e.ename,e.job,e.sal
      from emp e,(
         select job,min(sal) min
	     from emp
	     group by job) temp
      where e.job=temp.job 
      and e.sal=temp.min;

在这里插入图片描述
17、列出各个部门的MANAGER的最低薪金、姓名、部门名称、部门人数

mysql>select e.ename,e.sal,d.dname,res.count
	  from emp e,(
		select deptno dno,min(sal) sal
		from emp
		where job='MANAGER'
		group by deptno) temp,dept d,(
			select deptno dno,count(empno) count
			from emp
			group by deptno) res
	where e.deptno=temp.dno 
	and e.sal=temp.sal 
	and e.job='MANAGER'
	and e.deptno=d.deptno
	and res.dno=d.deptno;

在这里插入图片描述
18、列出所有员工的年工资,所在部门名称,按年薪从低到高排序

mysql>select e.ename,sal*12 income,d.dname
      from emp e,dept d
      where e.deptno=d.deptno
      order by income;

在这里插入图片描述
19、列出某个员工的上级主管及所在部门名称,并列出这些主管中的薪水超过3000的

mysql>select distinct m.ename,d.dname,m.sal
from emp e,emp m,dept d
where e.mgr=m.empno 
and m.deptno=d.deptno
and m.sal>3000;

20、求出部门名称中带‘S’字符的部门员工的工资合计、部门人数

mysql>select d.dname,sum(e.sal),count(e.empno)
      from emp e,dept d
      where e.deptno(+)=d.deptno 
      and d.dname like '%S%'
      group by d.dname;

21、给任职日期超过30年或者87年雇佣的雇员加薪,加薪原则:10部门增长10%,20部门增长20%,30部门增长30%,以此类推

UPDATE EMP SET 
	SAL=(1+DEPTNO/100)*SAL
WHERE MONTHS_BETWEEN(SYSDATE,HIREDATE)/12>30
OR TO_CHAR(HIREDATE,'yyyy')=1987

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

node.js快速入门指南

Node.js迅速蹿红&#xff0c;衍生了一个强大的开源社区、支持企业&#xff0c;甚至还拥有属于自己的技术大会。我把这种成功归结于它的简介&#xff0c;高校&#xff0c;同时提高了编程生产力。 Node.js 的前置知识很多&#xff0c;例如以下知识 JavaScriptES6Ajax 还不会的…

Java JVM:虚拟机性能监控、故障处理工具(三)

目录标题一、基础故障处理工具二、可视化故障处理工具三、其他故障相关一、基础故障处理工具 JMC&#xff08;Java Mission Control&#xff09;以及JFR&#xff08;Java Flight Recorder&#xff09; JMC 从 Java7 以后包含在 JDK 中&#xff0c;直接输入 jmc 就能启动在使用…

JEECGboot数据规则篇

使用 一、功能说明 列表数据权限&#xff0c;主要通过数据权限控制行数据&#xff0c;让不同的人有不同的查看数据规则&#xff1b; 比如&#xff1a; 销售人员只能看自己的数据&#xff1b;销售经理可以看所有下级销售人员的数据&#xff1b;财务只看金额大于5000的数据等等…

js事件高级

文章目录一、注册事件&#xff08;绑定事件&#xff09;1、注册事件概述&#xff08;1&#xff09;传统注册方式&#xff08;2&#xff09;方法监听注册方式2、addEventListener 事件监听方式3、attachEvent 事件监听方式4、注册事件兼容性解决方案二、删除事件&#xff08;解绑…

C库函数:string.h

string.h C 标准库 – <string.h> | 菜鸟教程 (runoob.com) 1void *memchr(const void *str, int c, size_t n) 在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c&#xff08;一个无符号字符&#xff09;的位置。在这个函数中&#xff0c;可以看到有void …

使用docker安装zabbix监控

官网手册&#xff1a;docker安装zabbix 首先需要安装好docker服务 创建专用于Zabbix组件容器的网络 docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net启动空的 MySQL 服务器实例 docker run --name mysql-server -t \ //mysql容器…

FFMPEG完美入门资料---002---FFmpeg 支持能力说明

FFMPEG入门资料---001---介绍和参数说明_音视频开发老马的博客-CSDN博客 接着上文写&#xff1a; 2.3.1 FFmpeg 对编码解码器的支持 ffmpeg 支持的编解码器种类共有 280 多种&#xff0c; 涵盖了几乎所有常见音视频编码格式&#xff0c; 能解码几乎所有的音视频&#xff0c; …

月交付破万,长安深蓝成造车新势力“头部玩家”

近日&#xff0c;造车新势力纷纷公布2022年12月交付数据。通过数据&#xff0c;我们发现众多造车新势力都取得了不错的成绩&#xff0c;“头部玩家”的门槛甚至提升至万辆。与此同时&#xff0c;“排位”形势也与往年大相径庭&#xff0c;其中最令人意外的是2022年发布的深蓝品…

ESP8266+MicroPython开发:使用ESP8266+Thonny烧录MicroPython固件

使用ESP8266Thonny烧录MicroPython固件下载固件下载安装Thonny在Thonny烧录固件测试Thonny简单使用下载固件 MicroPython下载网址 根据ESP8266的flash选择&#xff0c;一般选择如图所示 自己随便选择一个版本下载&#xff0c;注意记住自己的下载路径 下载安装Thonny Thonn…

【vue系列-05】vue的生命周期(详解)

深入理解vue的生命周期一&#xff0c;vue的生命周期1&#xff0c;创建流程1.1&#xff0c;beforeCreate1.2&#xff0c;created2&#xff0c;挂载流程2.1&#xff0c;beforeMount2.2&#xff0c;mounted3&#xff0c;更新流程3.1&#xff0c;beforeUpdate3.2&#xff0c;update…

ConvNeXt V2论文翻译:ConvNeXt V2与MAE激情碰撞

文章目录摘要1 简介2 相关工作3 全卷积掩码自编码器4 全局响应归一化5 ImageNet实验6 迁移学习实验7 结论摘要 论文链接&#xff1a;ConvNeXt V2 在改进的架构和更好的表示学习框架的推动下&#xff0c;视觉识别领域在21世纪20年代初实现了快速现代化和性能提升。例如&#xf…

评价类模型(层次分析法与模糊评价模型)

一、评价类模型 综合评价的基本理论和数据预处理&#xff1a; 评价对象评价指标权重系数综合评价模型评价者 二、AHP法—层次分析法 通过打分解决评价类问题&#xff0c;两两比较&#xff0c;推算权重。 %function RIAHPRI(n) %利用MATLAB求随机一致性指标; i0;CI0;Azer…

pyqt5下的QInputDialog跟QFileDialog以及关闭主窗口子窗口自动关闭

QInputDialog 具体的参数可以参考&#xff1a; Qt&#xff1a;30---QInputDialog标准输入对话框_mb6128aabee41d4的技术博客_51CTO博客 官网连接&#xff1a; QInputDialog Class | Qt Widgets 5.15.12 这里只介绍QInputDialog.getText 代码实现&#xff1a; from PyQt5.…

【从零开始学爬虫】采集食品行业最新报价数据

l 采集网站 【场景描述】采集食品行业最新报价数据。 【源网站介绍】中国报告大厅网休闲食品行业数据频道提供休闲食品行业数据信息&#xff0c;在此有大量休闲食品行业数据信息可供选择&#xff0c;是一个可以帮助休闲食品行业了解数据的平台。 【使用工具】前嗅ForeSpider…

hbase2.x orphan regions on filesystem

问题描述&#xff1a;orphan regions on filesystem 可以通过主master web页面的HBCK Report查看 也可以通过hbck2工具查看 # 查看指定表 hbase hbck -j $HBASE_HOME/lib/hbase-hbck2-1.3.0-SNAPSHOT.jar addFsRegionsMissingInMeta default:tableName # 查看命名空间下所有…

Git分支开发中的问题

前言我们在开发中&#xff0c;经常是很多人开发同一份代码&#xff0c;早期没有git工具的时候那可真是噩梦&#xff0c;要复制来复制去&#xff0c;不止繁琐&#xff0c;还容易出错&#xff0c;所以后来涌现了各种代码工具&#xff0c;Svn&#xff0c;Git等等&#xff0c;而Git…

一、mysql基础、MySQL的安装及卸载、DML、DQL

MySQL基础 1、数据库相关概念 以前我们做系统&#xff0c;数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会丢失的效果&#xff0c;当然文件存储也有它的弊端。 假设在文件中存储以下的数据&#xff1a; 姓名 年龄 性别 住址 张三 23 男 北京西三…

干货|app自动化测试之Andriod WebView如何测试

Hybrid App&#xff08;混合模式移动应用&#xff09;是介于 Web-app、Native-app 之间的 app&#xff0c;本质上是 Native-app 中嵌入 WebView 组件&#xff0c;在 WebView 组件里可以访问 Web App。Hybrid App 在给用户良好交互体验的同时&#xff0c;还具备了 Web App 的跨平…

Python数学建模问题总结(2)数据可视化Cookbook指南【源自Google可视化团队】

今天跟大家分享一套谷歌数据可视化团队形成的全面的数据可视化指南&#xff0c;涵盖了设计原则、图表分类、图表的选用、样式设计、交互设计、仪表板设计等方面。一、可视化问题不论你是从事数据相关工作&#xff0c;还是业务相关工作&#xff0c;或多或少都会需要用到数据可视…

docker 部署maven服务器用于项目的部署和发布

书接上文 现状: 已经搭建好了maven远程服务器,并将自己的项目从自己的pc部署到maven远程服务器.假设了kie-server集群可以每个node都连接这个远程服务器 要做的: 1.创建kie-server集群的时候设置环境变量. 2.看是否能连上自己搭建的maven服务器.3.如果2 ok 把kie-server需要…