文章目录
- 题目
- 数据表
- 分析
- 代码
- 运行结果
题目
本题目要求编写SQL语句,在SPJ数据库中,查询各工程项目使用所提供零件最多的供应商。
数据表
链接:spj库
分析
1.先统计各工程项目(jno)的各供应商(sno)提供的零件数量和(sum(qty)),记作派生表x:
代码语言:javascript复制select
sno,
jno,
sum(qty) qty
from spj
group by jno,sno
结果如下表所示:
2.再从表x中选出每个工程(group by jno)使用最多的零件。
代码语言:javascript复制select
jno,
max(qty) qty
from
(select
sno,
jno,
sum(qty) qty
from spj
group by jno,sno)as x
group by jno
order by jno
结果如下表所示:
3.然而事情并没有结束,题目还要求输出sno,而sno又没出现在聚集函数或group by 中,那么可以再嵌套一层查询,将第2点记为表y,使用相关子查询x.jno=y.jno即可。
代码
代码语言:javascript复制select
jno,
sno,
qty
from
(select
sno,
jno,
sum(qty) qty
from spj
group by jno,sno)as x
where x.qty=
(select max(qty)
from
(select
jno,
sum(qty) qty
from spj
group by jno,sno)as y
where x.jno=y.jno
)
order by jno
运行结果
原创不易,请勿转载(
本不富裕的访问量雪上加霜) 博主首页:https://blog.csdn.net/qq_45034708