SQL语句经典面试题
这是一道经典SQL题
建表语句
--产品表
create table Production(P# int not null,Pname varchar2(32),Pdate date);
alter table Production add constraint pk_p# primary key (P#);insert into Production values(1,'产品A',to_date('2017-6-25','yyyy-mm-dd'));
insert into Production values(2,'产品B',to_date('2017-5-25','yyyy-mm-dd'));
insert into Production values(3,'产品C',to_date('2016-8-10','yyyy-mm-dd'));--代理商表
create table Agent(A# int not null,Aname varchar2(32));
--添加主键
alter table Agent add constraint pk_a# primary key (A#);insert into Agent values(1,'AAA有限公司');
insert into Agent values(2,'BBB有限公司');
insert into Agent values(3,'CCC有限公司');--销售人员表
create table Sales(S# int not null,Sname varchar2(32),A# int not null);
alter table Sales add constraint pk_s# primary key (S#);
alter table Sales add constraint fk_a# foreign key (A#) references Agent(A#);insert into Sales values(1,'小赵',2);
insert into Sales values(2,'小钱',2);
insert into Sales values(3,'小孙',3);
insert into Sales values(4,'小李',1);
insert into Sales values(5,'小石',3);
insert into Sales values(6,'小刘',1);--销售量表
create table Deal(S# int not null,P# int not null,Volume int not null);
alter table Deal add constraint fk_s# foreign key (S#) references Sales(S#);
alter table Deal add constraint fk_p# foreign key (P#) references Production(P#);insert into Deal values(1,1,21);
insert into Deal values(1,2,56);
insert into Deal values(1,3,33);
insert into Deal values(2,2,120);
insert into Deal values(2,1,32);
insert into Deal values(2,3,26);
insert into Deal values(3,1,73);
insert into Deal values(3,3,45);
insert into Deal values(4,2,111);
insert into Deal values(4,3,84);
insert into Deal values(5,3,52);
insert into Deal values(5,1,38);
insert into Deal values(5,2,91);
insert into Deal values(6,2,36);
insert into Deal values(6,3,48);
insert into Deal values(6,1,15);
1.查询销量最高的产品的前两名使用 in 关键字
--查询销量最高的产品的前两名使用 in 关键字
select * from dealselect p.* from Production p where p.p# in (
select d.dp from (
select d.p# dp ,sum(d.volume) from deal d group by d.p# order by sum(d.volume) desc
) d
where rownum<=2)
2.查询每种产品销售量最高的销售人员 (使用 group by 关键字)
--查询每种产品销售量最高的销售人员 (使用 group by 关键字)-- select d.p# , max(d.volume) from deal d group by d.p# --- select * from deal d select * from sales s where s.s# in( select d.s# from deal d ,( select d.p# dp , max(d.volume) m from deal d group by d.p# ) b where d.volume =b.m and d.p# =b.dp)
3.查询产品编号为2 且 销售量超过100的姓名及所在公司
--查询产品编号为2 且 销售量超过100的姓名及所在公司select a.a#, a.aname ,hh.sn from agent a ,(select s.a# sa , s.sname sn from sales s where s.s# in(select d.s# from deal d where d.p#=2 and d.volume>100)) hhwhere a.a# =hh.sa
4.查询所有代理商所有产品的销售量
--查询所有代理商所有产品的销售量--select d.p# dp ,sum(d.volume) from deal d group by d.p# order by sum(d.volume) desc--select a.*,s.* from agent a -- left join sales s-- on a.a# =s.a#
-- left join deal d
-- on s.s#=d.s#--select a.*,s.* from agent a , sales s where a.a#=s.a# select e.aa,sum(e.bb) from( select a.a# aa ,a.* , s.* , (select sum(d.volume) from deal d where d.s#=s.s# ) bbfrom agent a , sales s where a.a#=s.a# ) e group by e.aa
5.查询每个产品有多少个销售人员在销售
--查询每个产品有多少个销售人员在销售
select * from deal d
select d.p#,count(d.s#) from deal d group by d.p#
6.查询名称包含BBB的代理商的所有销售人员
--查询名称包含BBB的代理商的所有销售人员select a.*,s.* from agent a left join sales son a.a# =s.a#where a.aname like '%BBB%'
7.查询总销量最差的产品
--查询总销量最差的产品
select * from Production p where p.p# in
(select d.dp from (select d.p# dp ,sum(d.volume) from deal d group by d.p# order by sum(d.volume) desc
) d
where rownum<=1)
8.查询2017年生产的产品总销量
--查询2017年生产的产品总销量select sum(f.ff) from Production p,
(
select d.p# dp ,sum(d.volume) ff from deal d group by d.p# order by sum(d.volume) desc
) fwhere to_char(p.pdate,'yyyy')='2017' and f.dp=p.p#
祝你幸福
送你一首歌:《Something Just Like This》The Chainsmokers
附图:稻城亚丁 水蓝色星球上的最后一片净土 国家地理 作者: 车可
SQL语句经典面试题相关推荐
- sqlserver sql语句|经典sql语句|实用sql语句
sqlserver sql语句|经典sql语句|实用sql语句 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop databa ...
- SQL语句经典50题
Sql语句经典50题 注:数据库版本为mysql 8.0 #学生表 CREATE TABLE `Student`( `s_id` VARCHAR(20), `s_name` VARCHAR(20) N ...
- sql语句常见面试题
sql语句常见面试题 1.建表 (1)student学生信息表 CREATE TABLE student (id INT (20) NOT NULL,NAME VARCHAR (20) NOT NUL ...
- 软件测试面试中会碰到sql语句的笔试题
在面试大公司的时候,很多情况下都有笔试题,笔试题经常包含软件测试的基础知识点.逻辑题.等等,有时候也会碰到关于sql语句的题目,今天来列举一些简单的sql语句,希望对大家有所帮助. 创建表语句 SET ...
- SQL语句常见面试题(一)
SQL语句中常用关键词及其解释如下: 1)SELECT 将资料从数据库中的表格内选出,两个关键字:从 (FROM) 数据库中的表格内选出 (SELECT).语法为 SELECT "栏位名&q ...
- 使用with语句来写一个稍微复杂sql语句(经典,转载)
偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章,自己添加了一些内容,做了简单的总结,这个语句还是第一次见到,学习了.我从简单到复杂地写,希望 ...
- Hive SQL 五大经典面试题
目录 第 1 题 连续问题 分析: 解法: 第 2 题 分组问题 分析: 解法: 第 3 题 间隔连续问题 分析: 解法: 第 4 题 打折日期交叉问题 分析: 解法: 第 5 题 同时在线问题 分析 ...
- 数据库SQL命令经典面试题65道
员工表 部门表 工种表 位置表 以下65道经典题目都是围绕这四张表进行的操作 1.查询员工的姓.名和薪资,并且姓和名拼接起来 (别名:AS 或者as可以省略) SELECT CONCAT(first_ ...
- sql语句相关面试题
朋友面试的基础数据库面试题,自己做了下 业务情景限制: 1. 一个班级有且有多名学生,一名学生只属于一个班级: 2. 学生有可能没有成绩: 考题: (1) 查询所有学生的信息(学号.姓名.性别.班级名 ...
最新文章
- C#Swagger使用
- 浅谈视觉设计的准确性
- 基于React Native和Ethers.js的电子钱包(三):Ethers.js
- 拷贝的Android源码不能单独编译mmm命令提示找不到
- 跟vczh看实例学编译原理——三:Tinymoe与无歧义语法分析
- qlabel文本改变信号_周明:NLP进步将如何改变搜索体验
- java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法
- 浏览器专属 CSS Hack:区分 Firefox / Opera / Safari / Internet Explorer
- java+创建metaq生产者_微服务架构【技术点4】windows下rocketMQ配置及java端生产者消费者配置-Go语言中文社区...
- 使用反射获取类的静态属性值
- 鱼哥,我怕蛇,可以搞Python么?
- github 从0开始的基本操作到fork和pr项目
- 解决Ubuntu 22.04 LTS作为nfs server时根文件系统挂载失败的问题
- 自学编程,痛并快乐着
- mysql8 vs postgresql_“王者对战”之 MySQL 8 vs PostgreSQL 10
- 软件测试周刊(第52期):世事多难料,唯独花期会如期。
- 双球坐标系_2.1 天球坐标系和地球坐标系
- 获取文件夹里图片的所有名称,并在Excel里进行统计
- seamless clone
- 【Apache S4 介绍】
热门文章
- 【C++】用类实现单向单链表的尾插PushBack(),尾删PopBack(),打印PrintSlist()。
- CSS3 连续向下循环播放动画
- 线程都有哪几种状态?
- 申请linux邮件列表
- [UML 扫盲]什么是UML?
- 22 freertos信号量
- C++using声明和using指示
- 核心频率个加速频率_NVIDIA GTX 1650正式升级GDDR6显存:核心频率砍一刀
- vb html单选按钮,VB单选按钮和复选框练习
- android 耳机数据线,如果买安卓手机不送充电器和耳机?你还买不买