SQL数据工程师面试题20231226

1、数据库知识:

在这里插入图片描述

表一:Stock(商品库存入库表)
商品编号 入库数量 描述
A 300 A
B 400 B
C 200 C

注: Stock 表的商品编号是唯一主键。

表二: OutStock(商品库存出库表)

商品编号 出库数量 描述
A 100 A
B 40 B
B 50 B

注: outStock 表同一个商品存在多次出库。

– 创建 Stock 表
CREATE TABLE Stock (
商品编号 VARCHAR(10) PRIMARY KEY,
入库数量 INT,
描述 VARCHAR(255) );

– 插入数据到 Stock 表
INSERT INTO Stock (商品编号, 入库数量, 描述) VALUES (‘A’, 300, ‘A’), (‘B’, 400, ‘B’), (‘C’, 200, ‘C’);

– 创建 OutStock 表
CREATE TABLE OutStock (
商品编号 VARCHAR(10),
出库数量 INT,
描述 VARCHAR(255) );

– 插入数据到 OutStock 表 INSERT INTO OutStock (商品编号, 出库数量, 描述) VALUES (‘A’, 100, ‘A’), (‘B’, 40, ‘B’), (‘B’, 50, ‘B’);

1、请用一条 select 语句查询出每个商品的入库数量。

SELECT 商品编号, SUM(入库数量) AS 总入库数量
FROM Stock
GROUP BY 商品编号;

在这里插入图片描述

2、请用一条 select 语句查询出每个商品的出库数量:

SELECT 商品编号, COALESCE(SUM(出库数量), 0) AS 总出库数量
FROM OutStock
GROUP BY 商品编号;#这里使用了COALESCE函数,它的作用是返回其参数中的第一个非NULL值。如果SUM(出库数量)的结果为NULL(可能是因为某些商品没有出库记录),则COALESCE函数会返回0,从而确保总出库数量始终有一个明确的值。
例如:SQL实例select coalesce(出库数量, 1) from OutStock当“出库数量”为null值的时候,将返回1,否则将返回“出库数量”的真实值。

第二种写法:

SELECT商品编号,SUM(出库数量) AS 出库数量 
FROMOutStock 
GROUP BY商品编号;

在这里插入图片描述

3、请用一条 select 语句查询出剩余数量最大的商品编号:
*注:剩余数量 = 入库数量 - 出库数量

-- 从一个子查询中选择商品编号  
SELECT 商品编号  
FROM (  -- 子查询中首先从Stock表中选择商品编号,并计算每个商品的剩余数量  SELECT s.商品编号, (SUM(s.入库数量) - COALESCE(SUM(o.出库数量), 0)) AS 剩余数量  FROM Stock s -- 定义了一个别名s来表示Stock表  LEFT JOIN OutStock o ON s.商品编号 = o.商品编号 -- 使用LEFT JOIN连接Stock和OutStock表,连接条件是两个表中的商品编号相同  GROUP BY s.商品编号 -- 按商品编号进行分组,这样就可以对每个商品进行汇总计算  
) AS 剩余数量表 -- 给子查询结果起了一个别名"剩余数量表"  
ORDER BY 剩余数量 DESC -- 按剩余数量降序排序,这样剩余数量最大的商品会排在最前面  
LIMIT 1; -- 只取排序后的第一条记录,即剩余数量最大的商品编号#简而言之,这段SQL代码首先通过子查询计算每个商品的剩余数量(入库数量减去出库数量),然后从这些结果中选取剩余数量最大的商品编号。

在这里插入图片描述

4、 请用一条 select 语句查询剩余数量:
*注:剩余数量 = 入库数量 - 出库数量

-- 从Stock表中选择商品编号和入库数量  
SELECT   Stock.商品编号,               -- 商品编号是唯一标识商品的字段  Stock.入库数量 - COALESCE(OutStock.出库数量, 0) AS 剩余数量  -- 入库数量减去出库数量得到剩余数量  
FROM   Stock                         -- 从Stock表开始查询  
LEFT JOIN (                       -- 使用LEFT JOIN连接一个子查询结果,该子查询计算每个商品的出库数量总和  SELECT   商品编号,                -- 商品编号用于分组,表示不同的商品  SUM(出库数量) AS 出库数量 -- 对每个商品的出库数量进行求和,得到该商品的出库总量  FROM   OutStock                -- 从OutStock表中选择数据  GROUP BY   商品编号                -- 按商品编号进行分组,这样就可以对每个商品进行汇总计算  
) AS OutStock                    -- 给子查询结果起了一个别名OutStock  
ON Stock.商品编号 = OutStock.商品编号; -- 使用商品编号作为连接条件,确保我们正确地将Stock表和子查询结果连接在一起#这段SQL代码首先从Stock表中选择商品编号和入库数量。然后,它使用LEFT JOIN连接一个子查询结果,该子查询计算每个商品的出库数量总和。通过商品编号作为连接条件,确保我们正确地将Stock表和子查询结果连接在一起。最后,通过将入库数量与出库数量相减,得到每个商品的剩余数量。

在这里插入图片描述

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

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

相关文章

MyBatis见解4

10.MyBatis的动态SQL 10.5.trim标签 trim标签可以代替where标签、set标签 mapper //修改public void updateByUser2(User user);<update id"updateByUser2" parameterType"User">update user<!-- 增加SET前缀&#xff0c;忽略&#xff0c;后缀…

vue3学习之路

reactive, ref响应式数据 let num reactive(0)// reactive中是简单数据类型&#xff0c;不会自动响应到页面中&#xff0c;除非有对象类型要响应才会跟着响应到页面 const obj reactive({num: 0,name: malinshu })const add () > {num;obj.num;obj.name obj.name -- }…

WizFi360-EVB-Pico评估版介绍

文章目录 1 概述2 硬件资源2.1 硬件规格2.2 引脚定义2.3 工作条件 3 参考资料3.1 Datasheet3.2 原理图3.3 尺寸图(单位 : mm) 3.4 参考例程 1 概述 WizFi360-EVB-Pico基于树莓派RP2040&#xff0c;并使用WizFi360增加Wi-Fi连接。它与树莓派Pico板引脚兼容&#xff0c;可用于物联…

一个越南程序员的阿里巴巴之旅

译者 蒋辉文&#xff0c;公众号&#xff1a;ali老蒋 文章说明 本文访谈主人公是一个越南程序员&#xff0c;原来在 Lazada 工作。后来&#xff0c;Lazada 被阿里收购&#xff0c;他就来到阿里&#xff0c;在杭州阿里巴巴西溪园区呆过一段时间。现在&#xff0c;他已经跳槽到…

【MySQL】数据库规范化的三大法则 — 一探范式设计原则

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; 数 据 库 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 1. 第一范式&#xff08;1NF&#xff09;&#xff1a; 2. 第二范式&#xff08;2NF&#xff09;&#xff1a; 3. 第三范式…

打字练习软件推荐:Master of Typing 3 中文 for Mac

"Master of Typing 3"是一款针对打字练习和提高打字速度的软件。它提供了一系列有趣和有挑战性的练习&#xff0c;旨在帮助用户提高键盘打字技能和准确性。 以下是"Master of Typing 3"的一些主要特点和功能&#xff1a; 打字练习&#xff1a;软件提供了各…

2023年12月25日学习总结——MLP

&#x1f4a1;我准备每一天都写一个学习总结&#xff0c;周末再把每日的学习总结汇总成专门的文章 &#x1f506;我的学习总结主要是为了自己的个人学习&#xff0c;没有商业用途&#xff0c;侵删 okkk开始今日学习 目录 1、今日计划学习内容2、今日学习内容深入学习MLP&#…

西南科技大学计算机网络实验四(交换机基本配置与VLAN配置)

一、实验目的 熟悉交换机的各种基本配置与VLAN配置。 二、实验环境 使用RouterSim Network Visualizer软件来模拟网络设备与网络环境。 三、实验内容 1、交换机的基础配置 2、单台交换机上的简单VLAN设置 3、多台交换机上进行VLAN设置 四、实验步骤 4.1 交换机的基础配置…

6.3 多线程的安全与应用

6.3 多线程的安全与应用 1. 多线程概念1. 进程2. 线程 2. 创建多线程3. 线程同步4. 线程安全5. 线程池应用 1. 多线程概念 1. 进程 2. 线程 2. 创建多线程 3. 线程同步 4. 线程安全 5. 线程池应用

编写fastapi接口服务

FastAPI是一个基于 Python 的后端框架&#xff0c;该框架鼓励使用 Pydantic 和 OpenAPI (以前称为 Swagger) 进行文档编制&#xff0c;使用 Docker 进行快速开发和部署以及基于 Starlette 框架进行的简单测试。 step1&#xff1a;安装必要库 pip install fastapi uvicorn st…

设计模式--建造者模式

实验5&#xff1a;建造者模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解建造者模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用建造者模式解决实际问题。 [实验任务]&#xff1a;计算机组装 使用建造者模…

MySQL explain执行计划详解

使用explain关键字可以模拟优化器执行SQL查询语句&#xff0c;从而知道MySQL是如何处理你的SQL语句的&#xff0c;分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为&#xff1a;id、type、key、rows、Extra 各字段详解 id select查询…

C语言第五十八弹----介绍memset内存函数

介绍C语言内存函数memset memset是C语言标准库中的一个函数&#xff0c;用于将一块内存区域的数据设置为指定的值。 源代码 void* memset(void* ptr, int value, size_t num);ptr是指向要设置的内存区域的指针&#xff0c;value是要设置的值&#xff08;以int形式表示&#x…

每日一练2023.12.25——验证身份【PTA】

题目链接 &#xff1a;验证身份 题目要求&#xff1a; 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&a…

python对图片进行二值化处理

二值化处理是一种常见的图像处理技术,它可以将灰度图像或彩色图像转换为二值图像,其中每个像素只包含0(黑色)或255(白色)。Python中常用的库来进行二值化处理的是OpenCV和Pillow。 以下是一个使用OpenCV对图片进行二值化处理的简单例子: import cv2# 读取图片 img = c…

Windows配置C语言环境(超级详细)

Windows配置C语言环境 1.安装C编译器&#xff08;MinGW-W64 GCC&#xff09;1.1点击安装1.2将压缩包解压到相应目录1.3把mingw添加进系统的环境变量1.4测试 2安装并配置Visual Studio Code2.1下载VSCode2.2“Code Runner”扩展的配置 3.编写C语言 各位小伙伴想要博客相关资料的…

如何使用支付宝沙箱环境支付并公网调用sdk创建支付单服务

文章目录 1.测试环境2.本地配置2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道3. 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名5. 使用固定二级子域名进行访问 1.测试环境 MavenSpring bootJdk 1.8 2.本地配置 获取支付宝支付Java SDK,…

【我与java的成长记】之面向对象的初步认识

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言一、什么是面向对象面向过程…

输出从0-n的水仙花数

水仙花数&#xff08;Narcissistic number&#xff09;也被称为超完全数字不变数&#xff08;pluperfect digital invariant, PPDI&#xff09;、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数&#xff08;Armstrong number&#xff09;&#xff0c;水仙花数是指一个 3 位数&#…

9.独立看门狗IWDG窗口看门狗WWDG编码思路

前言&#xff1a; 看门狗是维护系统稳定性的一向技术&#xff0c;可以让代码跑飞及时复位&#xff0c;在产品中非常常用&#xff0c;俗话说&#xff0c;重启能解决90%的问题&#xff0c;作为产品来说&#xff0c;你总不能因为一次bug就让程序卡死不动了&#xff0c;肯定要试着重…