SQL-查询各工程项目使用所提供零件最多的供应商
时间:2022-07-24
本文章向大家介绍SQL-查询各工程项目使用所提供零件最多的供应商,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
文章目录
- 题目
- 数据表
- 分析
- 代码
- 运行结果
题目
本题目要求编写SQL语句,在SPJ数据库中,查询各工程项目使用所提供零件最多的供应商。
数据表
链接:spj库
分析
1.先统计各工程项目(jno)的各供应商(sno)提供的零件数量和(sum(qty)),记作派生表x:
select
sno,
jno,
sum(qty) qty
from spj
group by jno,sno
结果如下表所示:
2.再从表x中选出每个工程(group by jno)使用最多的零件。
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即可。
代码
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
- ASP.NET Core 在 Azure 开启 HTTPS
- 算法基础:最大递减数问题(Golang实现)
- 亲身经历的痛--database/sql: Stmt的使用以及坑
- Ubuntu上通过nginx部署Django笔记
- Go学习笔记:golang交叉编译
- Python魔术方法-Magic Method
- python类中super()和__init__()的区别
- Python正则表达式:最短匹配
- 转--Go时间格式化和类型互换操作
- Python标准库(1) — itertools模块
- Linux笔记:使用Vim编辑器
- 一步一步学lucene——(第二步:示例篇)
- 类属性的延迟计算
- 一步一步学lucene——(第三步:索引篇)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- php基础教程 第十步 阶段性知识补充
- php基础教程 第十一步 面向对象
- php基础教程 第十一步 面向对象补充
- Serverless|Framework——图文玩转 AWS Lambda
- C++入门指南及实战 第一步 概述及经典HelloWorld
- C++入门指南及实战 第二步 HelloWorld及扩展详解
- 依托于GitLab持续集成基础配置和使用
- C++入门指南及实战 第三步 基本变量
- 最全总结 | 聊聊 Python 数据处理全家桶(配置篇)
- FlexSDK工具包的介绍与编译使用
- 《零基础看得懂的C语言入门教程 》——(二)C语言没那么难简单开发带你了解流程
- Ansible自动化运维学习笔记5
- Ansible自动化运维学习笔记4
- 《零基础看得懂的C语言入门教程 》——(三)轻轻松松理解第一个C语言程序
- Python自动化运维2