前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL-查询各工程项目使用所提供零件最多的供应商

SQL-查询各工程项目使用所提供零件最多的供应商

作者头像
唔仄lo咚锵
发布2020-09-15 11:23:53
8280
发布2020-09-15 11:23:53
举报
文章被收录于专栏:blog(为什么会重名,真的醉了)

文章目录

  • 题目
  • 数据表
  • 分析
  • 代码
    • 运行结果

题目


本题目要求编写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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 题目
  • 数据表
  • 分析
  • 代码
    • 运行结果
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档